【发布时间】:2012-07-31 20:36:57
【问题描述】:
我有一个带有两个片段的 ViewPager。在第一个上,有按钮(它是一个菜单),它们代表不同的类别。在第二个中,它是一个显示数据的 listView。 当用户单击其中一个菜单项时,我正在寻找一种方法来更改要在 listView 上显示的数据。 例如:用户点击菜单项1(fragment 1),fragment 2上的listView需要更新相应的数据。
我阅读了来自Google Android developer about fragments 的文档,但我无法解决,我没有找到解决问题的方法。
也许我错过了什么?
编辑:我试图通过使用 listItems.clear() 清除数据列表 (ArrayList> listItems) 来清除我的 ListView。没找到adapter.clear()怎么做,貌似Adapter类中不存在这个方法。
总结一下:我在包含 ListView (Fragment2) 的片段中创建了一个更新方法。我通过主要活动中的回调方法调用它,这部分似乎工作(我用调试模式检查了它)。 在我的 Fragment 2 的更新方法中,我使用 listItems.clear() 清除数据,然后执行 Fragment 的 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();
}
【问题讨论】:
-
@Maxetr 你能得到任何解决方案吗?
标签: android android-listview android-fragments android-viewpager