日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android方法的概括,android中的Filter接口简介

發布時間:2023/12/10 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android方法的概括,android中的Filter接口简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、結構

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?{

/**

Called?when?the?activity?is?first?created.

*/

@Override

public

void

onCreate(Bundle?savedInstanceState)?{

super

.onCreate(savedInstanceState);

setContentView(R.layout.main);

ArrayList

<

HashMap

<

String,String

>>

list

=

new

ArrayList

<

HashMap

<

String,?String

>>

();

HashMap

<

String,?String

>

map1

=

new

HashMap

<

String,?String

>

();

HashMap

<

String,?String

>

map2

=

new

HashMap

<

String,?String

>

();

HashMap

<

String,?String

>

map3

=

new

HashMap

<

String,?String

>

();

map1.put(

"

name

"

,

"

henly

"

);

map1.put(

"

age

"

,

"

22

"

);

map2.put(

"

name

"

,

"

john

"

);

map2.put(

"

age

"

,

"

23

"

);

map3.put(

"

name

"

,

"

lilei

"

);

map3.put(

"

age

"

,

"

22

"

);

list.add(map1);

list.add(map2);

list.add(map3);

SimpleAdapter?simpleAdapter

=

new

SimpleAdapter(

this

,?list,?R.layout.user,

new

String[]{

"

name

"

,

"

age

"

},

new

int

[]{R.id.name,R.id.age});

String?str

=

new

String(

"

22

"

);

CharSequence?constraint

=

str.subSequence(

0

,?str.length());

Filter?filter

=

simpleAdapter.getFilter();

//

得到一個過濾器

filter.filter(constraint);

//

為該過濾器設置約束條件

setListAdapter(simpleAdapter);

}

}

main.xml

xml?version="1.0"?encoding="utf-8"

?>

<

LinearLayout

xmlns:android

="http://schemas.android.com/apk/res/android"

android:orientation

="vertical"

android:layout_width

="fill_parent"

android:layout_height

="fill_parent"

>

<

LinearLayout

android:id

="@+id/listlinearlayout"

android:layout_width

="fill_parent"

android:layout_height

="wrap_content"

android:orientation

="vertical"

>

<

ListView

android:id

="@id/android:list"

android:layout_width

="fill_parent"

android:layout_height

="wrap_content"

android:drawSelectorOnTop

="false"

android:scrollbars

="vertical"

/>

LinearLayout

>

LinearLayout

>

user.xml

xml?version="1.0"?encoding="utf-8"

?>

<

LinearLayout

xmlns:android

="http://schemas.android.com/apk/res/android"

android:orientation

="horizontal"

android:layout_width

="fill_parent"

android:layout_height

="fill_parent"

android:paddingLeft

="12dip"

android:paddingRight

="12dip"

android:paddingTop

="1dip"

android:paddingBottom

="1dip"

>

<

TextView

android:id

="@+id/name"

android:layout_width

="150dip"

android:layout_height

="30dip"

android:textSize

="12pt"

/>

<

TextView

android:id

="@+id/age"

android:layout_width

="wrap_content"

android:layout_height

="wrap_content"

android:textSize

="12pt"

/>

LinearLayout

>

總結

以上是生活随笔為你收集整理的Android方法的概括,android中的Filter接口简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。