前言html
本章內容是 android.widget.Filter,譯爲"過濾器",版本爲Android 2.2 r1,翻譯來自"henly.zhang",再次感謝"henly.zhang" !期待你一塊兒參與 Android中文API 的翻譯,聯繫我over140@gmail.com。
java
聲明android
歡迎轉載,但請保留文章原始出處:)
異步
農民伯伯:http://over140.blog.51cto.com/ide
Android中文翻譯組:http://code.taobao.org/project/view/404/
函數
正文this
1、結構spa
public abstract class Filter extends Object線程
java.lang.Object翻譯
android.widget.Filter
2、概述
過濾器經過過濾模式來約束數據,一般由實現了Filterable接口的子類來生成。 過濾操做是經過調用 filter(CharSequence) 或者 filter(CharSequence, android.widget.Filter.FilterListener)這些異步方法來完成的。以上方法一旦被調用,過濾請求就會被遞交到請求隊列中等待處理,同時該操做會取消那些以前遞交的可是尚未被處理的請求。
3、構造函數
public Filter ()
建立一個新的異步過濾器。
4、公共方法
public CharSequence convertResultToString (Object resultValue)
將受過濾的集合對象轉換成CharSequence文本。全部繼承了Filter的子類應該重寫該方法。該方法的默認實現:若是參數爲null則返回空字符串或者返回參數的字符串形式.
參數
resultValue 轉換成CharSequence文本的對象
返回值
CharSequence 文本
public final void filter(CharSequence constraint, Filter.FilterListener listener)
啓動一個異步的過濾操做。對該方法的調用會取消以前隊列中等待處理的過濾請求而且遞交新的過濾請求等待執行。完成過濾操做以後,通知監聽器。
參數
constraint 過濾數據的約束條件
listener 監聽過濾操做完成以後發出的通知
參見
filter(CharSequence)
performFiltering(CharSequence)
publishResults(CharSequence, android.widget.Filter.FilterResults)
public final void filter(CharSequence constraint)
啓動一個異步的過濾操做。對該方法的調用會取消以前隊列中等待處理的過濾請求而且遞交新的過濾請求等待執行。
參數
constraint 過濾數據的約束條件
參見
filter(CharSequence, android.widget.Filter.FilterListener)
5、 受保護方法
protected abstract Filter.FilterResults performFiltering (CharSequence constraint)
根據約束條件調用一個工做線程過濾數據。子類必須實現該方法來執行過濾操做。過濾結果以Filter.FilterResults的形式返回,而後在UI線程中經過publishResults(CharSequence,android.widget.Filter.FilterResults)方法來發布。
約定:當約束條件爲null時,原始數據必須被恢復。
參數
constraint 約束條件
返回值
過濾結果
參見
filter(CharSequence, android.widget.Filter.FilterListener)
publishResults(CharSequence, android.widget.Filter.FilterResults)
protected abstract void publishResults (CharSequence constraint, Filter.FilterResults results)
經過調用UI線程在用戶界面發佈過濾結果。子類必須實現該方法來顯示performFiltering(CharSequence)的過濾結果。
參數
constraint 約束條件
results 過濾結果
參見
filter(CharSequence, android.widget.Filter.FilterListener)
performFiltering(CharSequence)
Filter.FilterResults
6、補充
示例代碼
未過濾的數據以下圖所示:
爲過濾器設置約束條件(只顯示年齡爲22的用戶):
TestFilter.java
main.xml
user.xml
結束
再次感謝"henly.zhang"爲你們帶來優秀的翻譯和示例:)