我是一个Android初学者
我有使用FixedTabs + Swipe的活动。 每个选项卡里面都有一个ListView,我使用一个适配器来填充它,因为我使用的是自定义对象。
它有效,但每次我浏览标签时,内容都会被添加更多次。 例如: - 第一个标签显示A和B. 然后我导航到第二个,然后是第三个 - 当我回到第一个标签时,我看到A,B,A,B。
我教过用saveInstanceState解决但是我发现它不起作用,saveInstanceState总是为null 这是代码
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_categories_dummy, container, false);
categoryListView = (ListView) rootView.findViewById(R.id.categoryListView);
if (savedInstanceState != null) {
category = savedInstanceState.getString("FRAGMENT_CATEGORY");
} else {
// Get the category
switch (getArguments().getInt(ARG_SECTION_NUMBER) - 1) {
case 0:
category = "First";
break;
case 1:
category = "Second";
break;
case 2:
category = "Third";
break;
}
getArrayList();
categoryListView.setAdapter(new TweetsAdapter(getActivity(), R.layout.category_row, arrayList, getArguments().getInt(ARG_SECTION_NUMBER)));
}
return rootView;
}
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putString("FRAGMENT_CATEGORY", category);
}
答案 0 :(得分:2)
更改标签时,您忘记清除Array
或ArrayList
用于保存列表项的任何内容。我想,当您更改选项卡时,只需添加与该选项卡对应的列表的相关元素,但在再次向其添加新项目之前必须先清除它。否则,新项目将添加到旧项目列表中。这就是为什么,你看到旧物品。希望它有所帮助。