过滤不同活动中的列表

时间:2012-01-10 09:07:20

标签: java android

我有一个主要活动生成列表的应用程序,在主要活动中有许多选项卡可以过滤列表,并在带有复选框的自定义ListView中列出整个列表的子集。

我在每个选项卡中都有适配器,并且在各种onCreate()中运行了线程,这些线程过滤主列表并将相关子集添加到其自己的适配器中。每当用户选中一个框时,我都会将复选框状态保存到SharedPreferences中。

我在同步各种ListActivities中的复选框时遇到问题。当我检查1个ListActivity中的一个框并切换到另一个选项卡时,它不会在那里更新。只有当我退出应用程序并重新启动它时,主活动才会重新生成列表,阅读SharedPreferences并更新所有复选框。

如何立即完成此操作,以便各种标签的各种ListActivities始终同步?

感谢。

1 个答案:

答案 0 :(得分:0)

我建议你在适配器上使用过滤器(即实现自己的过滤器,从复选框选择中读取)。拥有这么多线程是:a)让程序员感到困惑; b)同步问题的来源。每个ArrayAdapter都实现Filterable接口,您可以覆盖方法getFilter()以返回您自己的过滤器。在此过滤器中,您可以根据需要过滤掉元素。我认为这篇文章可以帮助你:How to write a custom filter for ListView with ArrayAdapter。您可能需要阅读您实施的每个过滤器中的设置。