2

I am working on a ViewPager with a FragmentStatePagerAdapter and I'm facing some troubles to dynamically add new fragments to my viewPager/Adapter. I have an "add" button where I can press and, then, one new fragment is inserted between other two existing fragments.

E.g: Initial fragmentList:

{Fragment 1, Fragment 2}

After click "add" on Fragment 1:

{Fragment 1, New Fragment, Fragment 2}

If the picture doesn't load, here's its link

This is the method code called when the user press "+"

public void actionPerformed(int action, int pageNumber){
    switch (action){
        case 0:
            Log.e("", "Add em " + pageNumber + 1);
            mFragmentList.add((pageNumber + 1), MyFragment.newInstance("99"));
            mPageAdapter.notifyDataSetChanged();
            mViewPager.setCurrentItem((pageNumber + 1));

            currentPage = (pageNumber + 1);
            pageTotal += 1;
            updatePageCount();
            break;

The problem is that I can't reach the recently added fragment without getting an error message.

This is my PagerAdapter Code:

private ArrayList<MyFragment> mFragmentList;

public MyPageAdapter(FragmentManager fm, ArrayList<MyFragment> fragments){
    super(fm);
    this.mFragmentList = fragments;
}

@Override
public int getItemPosition(Object object) {
    int index = mFragmentList.indexOf(object);
    if(index == -1){
        return POSITION_NONE;
    }else{
        return index;
    }
}

@Override
public Fragment getItem(int i) {
    return mFragmentList.get(i);
}

@Override
public int getCount() {
    return mFragmentList.size();
}

And finally, the code used to initialize the variables:

mViewPager = (ViewPager) findViewById(R.id.viewPager);
mViewPager.setOffscreenPageLimit(12);
mPageAdapter = new MyPageAdapter(getSupportFragmentManager(),mFragmentList);
mViewPager.setAdapter(mPageAdapter);
michaelbn
  • 7,393
  • 3
  • 33
  • 46
  • so what behaviour are you experiencing now . The fragment does get added right ? What you cant do is go to the added fragment , right ? – borax12 Jul 15 '15 at 19:16
  • Can you post your logcat so we can see the error you are getting? – Dan Harms Jul 15 '15 at 19:28

0 Answers0