我有一个 PagerFragmentAdapter 有两个选项卡,但只有一个片段 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;
}
当 PartOne() 加载时,我检索
partChosen = getArguments().getInt("current_page");
我用的
if (partChosen == 1) { // Code }
如所描述的那样使用,片段的两个实例以相同的方式运行,给出相同的结果(就像 partChosen == 2 即使它不是)。但是,当我在案例 1 中将 Fragment PartOne() 替换为 PartTwo()* 时,它们会按照我需要的方式行事。
*PartTwo() 的代码与 PartOne() 完全相同,只是名称不同。
请问,我做错了什么?