0

I would like to add fragment to back stack in sequence f1,f2,f3... if I go from f3 or f2 I should reach f1 then nothing in the backstack. this the code I use:

public void openFragment(BaseFragment baseFragment, Bundle data) {

    if (baseFragment != null) {

        if (data != null)
            baseFragment.setArguments(data);
        Log.d(TAG, "openFragment" + baseFragment);

        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction ft = fragmentManager.beginTransaction();

        String tag1 = getString(baseFragment.getTitleResourceId());

        ft.replace(R.id.fragment_main, baseFragment, tag1);
        ft.addToBackStack(null);
        ft.commit();

        if (baseFragment.getTitleResourceId() > 0)
            mCurrentTitle = baseFragment.getTitleResourceId();

    }

}

I tried to use the following but no way:

public void openFragment(BaseFragment baseFragment, Bundle data) {

    if (baseFragment != null) {

        if (data != null)
            baseFragment.setArguments(data);
        Log.d(TAG, "openFragment" + baseFragment);

        FragmentManager fragmentManager = getFragmentManager();
        FragmentTransaction ft = fragmentManager.beginTransaction();

        String tag1 = getString(baseFragment.getTitleResourceId());

        // Fragment frgExist = fragmentManager.findFragmentByTag(tag1);
        ft.replace(R.id.fragment_main, baseFragment, tag1);
        // if (frgExist == null)

        ft.addToBackStack(null);
        ft.commit();

        if (baseFragment.getTitleResourceId() > 0)
            mCurrentTitle = baseFragment.getTitleResourceId();

    }

}

*BaseFragment is just abstract class extends fragment that set a title. Thanks.

Glenn
  • 12,741
  • 6
  • 47
  • 48
aselims
  • 1,843
  • 1
  • 17
  • 19

1 Answers1

0

Edit

Use this for adding to the backstack. As parameter you give a string, for example: "FirstFragment". Then you use this to pop the backstack. You can provide a string as parameter, this string should then be "FirstFragment". This way you pop everything untill your first fragment.


Try to add only the first (from f1 to f2) to the backstack. If I'm right this will always get back to f1 even if you're in f3 because you have no reference of the transaction between f2 and f3.

Kevin van Mierlo
  • 9,554
  • 5
  • 44
  • 76