-1

In the android documentation on FragmentStatePagerAdapter it is explained that the adapter can be set up like this:

public static class MyAdapter extends FragmentStatePagerAdapter {
    public MyAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return NUM_ITEMS;
    }

    @Override
    public Fragment getItem(int position) {
        return MyFragment.newInstance();
    }
}

I would like to use this, however, I would also like to manage the Fragments that were added with a FragmentManager. How can I do this? My approach is throwing a NullPointerException.

public static class MyAdapter extends FragmentStatePagerAdapter {
    private FragmentManager mFragmentManager;

    public MyAdapter(FragmentManager fm) {
        super(fm);
        mFragmentManager = fm;
    }

    @Override
    public int getCount() {
        return NUM_ITEMS;
    }

    @Override
    public Fragment getItem(int position) {
        mFragmentManager.beginTransaction()
            .add(MyFragment.newInstance(), MyFragment.TAG).commit();
        return mFragmentManager.findFragmentByTag(MyFragment.TAG);
    }
}
user2426316
  • 7,131
  • 20
  • 52
  • 83

1 Answers1

0

How can I do this?

You write your own PagerAdapter implementation from scratch. FragmentPagerAdapter and FragmentStatePagerAdapter will do their own fragment transactions, colliding with yours.

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
  • how should this custom pageradapter look like? Do you know the basic setup? – user2426316 Mar 03 '14 at 22:22
  • @user2426316: You might start by forking one of those two, as they are open source. – CommonsWare Mar 03 '14 at 22:28
  • @user2426316: Here is the `v13` version of `FragmentPagerAdapter`: https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/v13/java/android/support/v13/app/FragmentPagerAdapter.java The other ones are available at similar URLs. – CommonsWare Mar 03 '14 at 23:18