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