我有带有自定义适配器的 ListView 扩展了 ArrayAdapter。每个项目都是对象:
public class ListItemObject {
public String messageText;
public long messageTime;
public long fromId;
public long toId;
}
我想在菜单中添加可检查项以进行过滤切换。因此,当此项目未选中时,我将显示所有项目,并且当此项目选中ListView时,必须只包含此条件的过滤的项目:
if(fromId==myId || toId==myId) {
//show item
} else {
//don't show item
}
我看到了两种实现方式:
让我自己的过滤器扩展过滤器。然后调用 adapter.getFilter().filter(string_with_fromId_and_toId_in_JSON)。我在这里看到一个问题:所有外观适配器只能包含一个过滤器。如果我以后想添加另一个过滤器,我不能这样做。
保存适配器外部的所有项目,将其清除并再次填充过滤数据。这对我来说不是方便的方法,但我可以做到。
如何更好地实现这一点?