Activity And Fragment Interaction

前端 未结 7 1268
南旧
南旧 2020-12-10 12:54

I have an Activity with multiple Fragments. I want to show a DialogFragment or open another Fragment from one of the

7条回答
  •  天涯浪人
    2020-12-10 13:27

    Just follow the documentation:

    Fragment:

    public class HeadlinesFragment extends Fragment {
    
        // Container Activity must implement this interface
        public interface OnHeadlineSelectedListener {
            public void onArticleSelected(int position);
        }
    
        OnHeadlineSelectedListener mCallback;
    
        // "Bind" to the Activity where this Fragment lives
        public void setOnHeadlineSelectedListener(Activity activity) {
            mCallback = (OnHeadlineSelectedListener) activity;
        }
    
        // ...
    
        // This will send info to the Activity where the Fragment lives
        private void someOtherFunctionOrListener(int position) {
            mCallback.onArticleSelected(position); // pass info into Activity
        }
    }
    

    Activity:

    public static class MainActivity extends Activity
            implements HeadlinesFragment.OnHeadlineSelectedListener{
        // ...
    
        @Override
        public void onAttachFragment(Fragment fragment) {
            if (fragment instanceof HeadlinesFragment) {
                HeadlinesFragment headlinesFragment = (HeadlinesFragment) fragment;
                headlinesFragment.setOnHeadlineSelectedListener(this);
            }
        }
    
        @Override
        public void onArticleSelected(int position) {
            // Call received from Fragment
        }
    }
    

提交回复
热议问题