1. 程式人生 > >Android API之android.widget.Filterable

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中。