1
進出口新的機器人,使用FragmentPageAdapter所以在上面的代碼我需要膨脹MenuItemFragment相應的位置使用類似下面的添加頁面到碎片頁適配器動態
public Fragment getItem(int position) {
if (position == 0) {
MenuItemFragment frag = new MenuItemFragment();
Bundle bundle = new Bundle();
bundle.putInt("pos", position);
frag.setArguments(bundle);
return frag;
} else if (position == 1) {
MenuItemFragment1 frag = new MenuItemFragment1();
Bundle bundle = new Bundle();
bundle.putInt("pos", position);
frag.setArguments(bundle);
return frag;
} else if (position == 2) {
MenuItemFragment2 frag = new MenuItemFragment2();
Bundle bundle = new Bundle();
bundle.putInt("pos", position);
frag.setArguments(bundle);
return frag;
}
return null;
}
時工作完全正常當時。
我的問題是:是否有可能動態添加碎片取決於某些condidtion。這裏我所有的片段都具有相同的佈局,但每個片段的數據更改。
我對上述代碼做了動態返回片段的操作。如下。
public Fragment getItem(int position) {
if (SubMenuActivity.sMenuCategory.size() > 0) {
SubMenuActivity.sMenuCategory.clear();
}
MenuItemFragment frag = new MenuItemFragment();
try {
for (int j = 0; j < SubMenuActivity.sMenuCard.size(); j++) {
String category = SubMenuActivity.sMenuCard.get(j).mCategory;
String header = SubMenuActivity.sMenuFragHeader[position];
if (category.equalsIgnoreCase(header)) {
SubMenuActivity.sMenuCategory.add(SubMenuActivity.sMenuCard
.get(j));
}
}
} catch (Exception e) {
e.printStackTrace();
}
return frag;
}
這裏的問題是,對於每個位置即時將數據添加到sMenuCategory.But這裏的getItem(位置)的第一次循環兩次,並清除時的位置是零添加的數據,並保持當位置爲1時添加數據,並顯示前兩個片段的相同數據。
請幫我解決這個問題。清除每個位置的arrayList,以便按照不重複的列表包含數據。