public void selectedButtonClicked() { Fragment fragment = MyListFragment.newInstance(index); //Set the TargetFragment fragment.setTargetFragment(MyMainFragment.this, MyListFragment.REQUESTCODE) getFragmentManager().beginTransaction() .addToBackStack(null) .replace(R.id.root, fragment, LIST) .commit(); }
@Override public void onSaveInstanceState(final Bundle outState) { Fragment threadFrag = new ThreadFrag(); threadFrag.setTargetFragment(this , -1); ... }
/***************************************************** * * Called when a target fragment is set. * *****************************************************/ @Override public void setTargetFragment( Fragment fragment, int requestCode ) { super.setTargetFragment( fragment, requestCode ); mRetainedFragmentHelper.onSetTargetFragment( fragment, requestCode ); }
Fragment bFragment = new BFragment(); bFragment.setTargetFragment(this, 42); // `this` is your AFragment instance // transact here
Fragment newFragment = new YourFragment(); newFragment .setTargetFragment(this, SOME_REQUEST_INT);
/***************************************************** * * Removes this fragment from the activity and clears * its target fragment. * *****************************************************/ public void removeFrom( Fragment fragment ) { super.setTargetFragment( null, 0 ); Activity activity = fragment.getActivity(); if ( activity != null ) removeFrom( activity ); }
public class Fragment1 extends Fragment { ... public void createFragment2(){ final Fragment dialogFragment = new MyDialogFragment(); dialogFragment.setTargetFragment(this); dialogFragment.show(); } } public class Fragment2 extends DialogFragment{ ... public void onEvent(){ ((Fragment1)getTargetFragment()).onEvent(); } }
try { f = claz.newInstance(); f.setTargetFragment(this, 0); tx.add(R.id.fragment_content, f); tx.commit();
public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) { Fragment f = Fragment.instantiate(getActivity(), pref.getFragment(), pref.getExtras()); f.setTargetFragment(caller, 0); startPreferenceFragment(f); return true; }