編輯:Android開發實例
正文
一、結構
public abstract class Filter extends Object
java.lang.Object
android.widget.Filter
二、概述
過濾器通過過濾模式來約束數據,通常由實現了Filterable接口的子類來生成。 過濾操作是通過調用 filter(CharSequence) 或者 filter(CharSequence, android.widget.Filter.FilterListener)這些異步方法來完成的。以上方法一旦被調用,過濾請求就會被遞交到請求隊列中等待處理,同時該操作會取消那些之前遞交的但是還沒有被處理的請求。
三、構造函數
public Filter ()
創建一個新的異步過濾器。
四、公共方法
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)
五、 受保護方法
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)
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
六、補充
示例代碼
未過濾的數據如下圖所示:
為過濾器設置約束條件(只顯示年齡為22的用戶):
TestFilter.java
public class TestFilter extends ListActivity {
main.xml
<?xml version="1.0" encoding="utf-8"?>
user.xml
<?xml version="1.0" encoding="utf-8"?>
結束
再次感謝"henly.zhang"為大家帶來優秀的翻譯和示例:)
轉自:http://www.cnblogs.com/over140/archive/2010/11/25/1887892.html
一、問題描述 使用BordercastReceiver和Service組件實現下述功能: 1.當手機處於來電狀態,啟動監聽服務,對來電進行監聽錄音。 2.設置
閒來無事,琢磨琢磨Android中的手勢交互,發現網上在手勢方面的文章並不是很多,而且很多的參考價值並不大。於是出此博文,與大家共勉。鑒於我寫此博文時對手勢交互的
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個