我一直试图通过引用SO解决方案整天过滤我的列表视图,但却无法做到。因此,我粘贴下面的代码供您参考,以确切知道我在做什么..请一些人帮我解决它,如果可能的话编辑我的代码或指出我的错误..列表不会被过滤。提前谢谢
答案 0 :(得分:1)
问题似乎出现在publishResults
方法中。从performFiltering
获得的结果永远不会应用于数组适配器内的对象列表。执行此操作的简便方法是使用筛选的项创建新的ArrayAdapter
并更新列表视图。
数组列表的默认行为是对前缀进行过滤。如果没问题,您只需在列表视图上调用setFilterText
,即可过滤文本,而无需实现自己的过滤。
另外,作为一方,您可能希望将Filter newFilter = null;
移到方法之外。否则,您每次都要创建过滤器。并且不应该在etsearch
方法中为performFiltering
的内容设置约束,因为您使用文本观察器中应该具有相同字符串值的文本调用过滤器。