过滤数组列表可过滤不取消之前的过滤器

时间:2013-10-03 12:52:41

标签: android android-listview filter

我已经看到了过滤方法文档,该文档显示调用过滤器会取消所有先前未执行的过滤请求,并发布将在稍后执行的新过滤请求。

但我收到的实际回调有些不同。在我的实现中,它没有取消先前的过滤请求,并在最近的搜索条件之后调用publishResults()方法用于先前的搜索条件。日志为如下:

  10-03 17:49:41.781: E/TAG(2150): onTextChanged first Criteria  
  10-03 17:49:41.781: E/TAG(2150): performFiltering first Criteria  
  10-03 17:49:41.961: E/TAG(2150): onTextChanged second Criteria   
  10-03 17:49:41.961: E/TAG(2150): performFiltering second Criteria  
  10-03 17:49:42.195: E/TAG(2150): publishResults second Criteria   
  10-03 17:49:42.219: E/TAG(2150): publishResults first Criteria     

1 个答案:

答案 0 :(得分:2)

您必须在适配器中仅使用一个单个Filter实例才能取消之前未执行的任何过滤请求。每次调用Filter时都不要创建getFilter的新实例。

例如,在适配器初始化时初始化它,然后从getFilter方法返回它。