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,以便按照不重复的列表包含数据。