我想在ListView
上添加过滤器。
我已经知道如何做(通过制作适配器实现Filterable
),但我对它有一些疑问。
1)我见过的例子总是遍历整个项目列表,检查每个项目是否需要过滤并返回项目。然后getView仅实例化返回的项目。有没有办法不遍历所有列表两次(一次用于过滤,一次用于项目实例化),但是只做一次?也许类似于检查getView
方法中的过滤条件,然后决定是否应该创建项目?
2)在我过滤项目后,我用过滤后的列表覆盖原始列表。这是否意味着我需要保留列表的副本,并且在我更改过滤器查询(可以在按下的每个键上更改后)之后始终在原始副本和副本之间切换?