Search code examples
androidfragmentpageradapter

Same fragment in different Tabs in Android


I have a PagerFragmentAdapter with two tabs but only one fragment PartOne() :

@Override
    public Fragment getItem(int arg0) {
        Bundle data = new Bundle();
        switch(arg0){
            case 0:
                PartOne oneFragment = new PartOne();                
                data.putInt("current_page", arg0+1);
                oneFragment.setArguments(data);
                return oneFragment;
            case 1:
                PartOne twoFragment = new PartOne();
                data.putInt("current_page", arg0+1);
                twoFragment.setArguments(data);
                return twoFragment; 
        }
        return null;
    }

When PartOne() loads, I retrieve

partChosen = getArguments().getInt("current_page");

that I use

if (partChosen == 1) { // Code }

Used as described, the two instances of the fragment act the same way, giving the same results(as if partChosen == 2 even if it's not). However, when I replace the Fragment PartOne() by PartTwo()* in case 1, they act the way I need them to.

*PartTwo() has the exact same code as PartOne(), just a different name.

Please, what am I doing wrong?


Solution

  • Aside from repetition, your code is fine.

    A better way to write getItem() would be:

    @Override
    public Fragment getItem(int position) {
        Bundle data = new Bundle();
        PartOne oneFragment = new PartOne();                
        data.putInt("current_page", position + 1);
        oneFragment.setArguments(data);
        return oneFragment;
    
    }
    

    The only problem I can think of is you declared partChosen static.