我有一个带有两个片段的 ViewPager。在第一个上,有按钮(它是一个菜单),它们代表不同的类别。在第二个上,它是一个显示数据的列表视图。当用户单击其中一个菜单项时,我正在寻找一种方法来更改要在 listView 上显示的数据。例如:用户点击菜单项 1(fragment 1),fragment 2 上的 listView 必须更新相应的数据。
我从Google Android 开发人员那里阅读了有关片段的文档,但我无法解决,我没有找到解决问题的方法。
也许我错过了什么?
编辑:我试图通过使用 listItems.clear() 清除数据列表(ArrayList> listItems)来清除我的 ListView。没找到adapter.clear()怎么做,貌似Adapter类中不存在这个方法。
总结一下:我在包含 ListView (Fragment2) 的片段中创建了一个更新方法。我通过主要活动中的回调方法调用它,这部分似乎工作(我用调试模式检查了它)。在我的片段 2 的更新方法中,我使用 listItems.clear() 清除数据,然后执行片段的 OnActivityCreated()。在其中,我的线程调用下载数据,然后在 OnPostExecute 中创建 ListView。
这是我的代码示例(片段2):
// After data are ready
lvListe = (ListView) getView().findViewById(R.id.lvListe);
lvListe.setSelected(true);
lvListe.setScrollingCacheEnabled(false);
adapter = new LazyAdapter(getActivity(),
getActivity().getBaseContext(), listItems,
R.layout.affichageitem, new String[] { "image", "title",
"subtitle" }, new int[] { R.id.img_title,
R.id.titre_main, R.id.soustitre_main });
lvListe.setAdapter(adapter);
lvListe.setClickable(true);
lvListe.setOnItemClickListener(onItemClickListener);
// Update method :
public void update(String requete, String type)
{
this.type = type;
this.requete = requete;
listItems.clear();
}