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?
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.