Android API之android.widget.Filterable

android.widget.Filterable

定义了一种可过滤的行为。Filterable接口通常有android.widget.Adapter来实现。接口Filterable中有个抽象方法getFilter()须要实现。

Filter android.widget.Filterable.getFilter()

返回一个filter对象。用来过滤出符合某种pattern的数据。getFilter()方法通常在android.widget.Adapter类中实现。

android.widget.Filter
一般是实现Filterable接口来创建Filter对象。方法filter(CharSequence)、filter(CharSequence, FilterListener)实现过滤操作是异步进行的。将一个过滤请求放到请求队列中。在稍候处理。取消上次没有运行的过滤请求。

创建一个Filter对象,须要至少实现两个抽象方法:

protected FilterResults performFiltering(CharSequence constraint)

protected void publishResults(CharSequence constraint, FilterResults results)

方法一:
protected FilterResults performFiltering(CharSequence constraint)

在worker线程中调用。根据constraint来过滤。返回结果,一个FilterResults对象,将通过方法publishResults(Charsequence, FilterResults)在UI线程中发表。

当參数(constraint)为null。恢复为初始的数据。

方法二:

protected void publishResults(CharSequence constraint, FilterResults results)

在UI线程中调用。发表过滤操作的结果显示到UI中。

原文地址:https://www.cnblogs.com/gccbuaa/p/7007850.html