?
本文檔使用 PHP中文網(wǎng)手冊(cè) 發(fā)布
SearchView
版本:Android 3.1 r1
?
結(jié)構(gòu)
繼承關(guān)系
public class SearchView extends LinearLayout
????????
java.lang.Object
android.view.View
???????? android.view.ViewGroup
?????????????????? android.widget.LinearLayout
??????????????????????????? android.widget.SearchView
?
類概述
????????
???????? 一個(gè)為用戶提供輸入搜索查詢和提交請(qǐng)求給搜索提供者的用戶界面部件。顯示查詢建議或結(jié)果列表,如果有的話,運(yùn)行用戶選擇一條查詢建議或結(jié)果并啟動(dòng)與其相關(guān)的操作。
???????? 更多信息,參見Search文檔。
?
內(nèi)部類
interface ???????? SearchView.OnCloseListener ??????
(譯者注:當(dāng)用戶關(guān)閉SearchView時(shí)觸發(fā)的回調(diào)函數(shù))
?
interface ????SearchView.OnQueryTextListener??????? ????????
當(dāng)查詢文本改變時(shí)的回調(diào)函數(shù)。
?
interface?????????? SearchView.OnSuggestionListener
在建議上選擇事件時(shí)的回調(diào)接口。
?
XML屬性
屬性名稱 |
描述 |
android:iconifiedByDefault |
設(shè)置SearchView的默認(rèn)狀態(tài)。 如果為true,在沒有被使用和點(diǎn)擊展開時(shí)它將被圖形化。 |
android:maxWidth |
SearchView的可選擇的最大寬度 |
android:queryHint |
當(dāng)查詢條件為空時(shí)顯示的一個(gè)提示字符串。 |
?
公共方法
public CharSequence getQuery ()
???????? 返回當(dāng)前文本域中的查詢字符串
?????????????????? 返回值
??????????????????????????? 查詢字符串
?
public CursorAdapter getSuggestionsAdapter ()
如果有的話,返回用于搜索建議的適配器。
?????????????????? 返回值
??????????????????????????? 查詢適配器
?
?????? public boolean isIconfiedByDefault ()
返回查詢區(qū)域默認(rèn)的圖標(biāo)狀態(tài)。
?
public boolean isIconified ()
返回SearchView當(dāng)前的圖標(biāo)狀態(tài)
?????????????????? 返回值
如果SearchView目前是圖標(biāo)狀態(tài),返回true,如果查詢區(qū)域是完全可見的返回false
?
public boolean isQueryRefinementEnabled ()
返回查詢優(yōu)化是否是對(duì)所有的條目都起作用或者只是對(duì)特別的幾個(gè)起作用
?????????????????? 返回值
??????????????????????????? 如果是對(duì)所有的條目起作用,剛返回true,否則返回false。
?
???????? public boolean isSubmitButtonEnabled ()
返回當(dāng)提交按鈕在必須的時(shí)候是否可用或者從不顯示
?????????????????? 返回值
??????????????????????????? 提交按鈕在必須的時(shí)候是否自動(dòng)啟用
?
public boolean onKeyDown (int keyCode, KeyEvent event)
是否處理操作鍵按下事件
參數(shù)
keyCode?? 鍵入的鍵盤值,同時(shí)和鍵盤事件中的參數(shù)相同
event??????? 輸入鍵的完整事件記錄
?????????????????? 返回值
??????????????????????????? 如果事件在這里被處理,返回true,不處理返回false
?
public void setIconified (boolean iconify)
???????? 圖標(biāo)化或者展開SearchView。當(dāng)圖標(biāo)化時(shí)任何查詢條件都被清除。這是一個(gè)臨時(shí)的狀態(tài),不會(huì)重寫被setIconifiedByDefault(boolean)設(shè)置的默認(rèn)圖標(biāo)狀態(tài)。如果默認(rèn)的是圖標(biāo)化狀態(tài),則在用戶關(guān)閉這個(gè)區(qū)域前都是false。如果默認(rèn)的是展開狀態(tài),這里就是true,同時(shí)清除文本區(qū)域,但不關(guān)閉它。
參數(shù)
iconify?????? true值會(huì)把SearchView收縮成一個(gè)圖標(biāo),false值會(huì)展開它
?????????????????? 返回值
??????????????????????????? 查詢字符串
?
public void setIconifiedByDefault (boolean iconified)
???????? 設(shè)置搜索欄的默認(rèn)狀態(tài)或者靜止?fàn)顟B(tài)。如果是true,當(dāng)被按下時(shí),一個(gè)單一的搜索圖標(biāo)就會(huì)被默認(rèn)顯示,同時(shí)顯示文本字段和其他按鈕。如果默認(rèn)的狀態(tài)是圖標(biāo),在按下關(guān)閉按鈕時(shí)它就會(huì)收縮成那個(gè)狀態(tài)。這個(gè)屬性的改變會(huì)立即生效。
?????????????????? 參數(shù)
??????????????????????????? iconified?? 搜索欄是否默認(rèn)被圖標(biāo)化
?
public void setMaxWidth (int maxpixels)
以最寬的像素相看
?????????????????? 相關(guān)的XML屬性
??????????????????????????? android:maxWidth
?
public void setOnCloseListener (SearchView.OnCloseListener listener)
當(dāng)用戶關(guān)閉SearchView時(shí)設(shè)置一個(gè)監(jiān)聽器通知用戶
參數(shù)
???????? listener??? 設(shè)置用戶關(guān)閉SearchView時(shí)的監(jiān)聽器
?
public void setOnQueryTextFocusChangeListener (View.OnFocusChangeListener listener)
???????? 設(shè)置當(dāng)查詢區(qū)域字段改變時(shí)通知用戶的監(jiān)聽器
參數(shù)
???????? listener??? 設(shè)置焦點(diǎn)更改時(shí)的監(jiān)聽器
?
???????? public void setOnQueryTextListener (SearchView.OnQueryTextListener listener)
???????? 為用戶在SearchView內(nèi)的操作設(shè)置監(jiān)聽器
參數(shù)
???????? listener??? 當(dāng)用戶在SearchView操作時(shí)比如說點(diǎn)擊按鈕或者輸入查詢內(nèi)容時(shí),設(shè)置接收回調(diào)的監(jiān)聽器對(duì)象
?
???????? public void setOnSearchClickListener (View.OnClickListener listener)
???????? 設(shè)置按鈕被按下時(shí)的監(jiān)聽器。在默認(rèn)情況下當(dāng)文本字段不可見時(shí)才起作用,調(diào)用setIconified(false)也可以通知這個(gè)監(jiān)聽器。
參數(shù)
listener??? 當(dāng)搜索按鈕被點(diǎn)擊或者文本字段編輯取消圖形化時(shí)通知監(jiān)聽器
?
???????? public void setOnSuggestionListener (SearchView.OnSuggestionListener listener)
???????? 設(shè)置當(dāng)一條搜索建議被選中或者點(diǎn)擊的時(shí)候的監(jiān)聽器
參數(shù)
listener??? 選擇搜索建議事件的監(jiān)聽器
?
???????? public void setQuery (CharSequence query, boolean submit)
???????? 設(shè)置文本區(qū)域的一個(gè)查詢字符串并選擇提交和查詢。
參數(shù)
???????? query??????? 查詢字符串。代替在文本區(qū)域已經(jīng)存在的查詢文本
???????? submit????? 是否立即提交查詢或者只更新文本區(qū)域的內(nèi)容
?
???????? public void setQueryHint (CharSequence hint)
???????? 設(shè)置在查詢文本區(qū)域的提示文本。將覆蓋SearchableInfo中的任何提示。
?????????????????? 相關(guān)XML屬性
??????????????????????????? android:queryHint
參數(shù)
???????? hint??? 要顯示的提示文本
??????????????????
???????? public void setQueryRefinementEnabled (boolean enable)
???????? 指定如果精確查詢按鈕是否在每條建議的旁邊顯示或者是否根據(jù)運(yùn)營(yíng)商建議中的設(shè)置在個(gè)別項(xiàng)目的標(biāo)志決定。點(diǎn)擊精確查詢的按鈕會(huì)用建議中的文本替換查詢文本區(qū)域中的字段。這個(gè)標(biāo)志只是在一個(gè)SearchableInfo中指定setSearchableInfo(SearchableInfo)且不使用定制的適配器時(shí)起作用。
參數(shù)
??????????????????????????? enable????? 如果所有的條目都有一個(gè)精確查詢按鈕剛為true,如果只有帶精確查詢標(biāo)志的條目需要按鈕,則為false。
?????????????????? 參見
??????????????????????????? SUGGEST_COLUMN_FLAGS
FLAG_QUERY_REFINEMENT
?
???????? public void setSearchableInfo (SearchableInfo searchable)
???????? 給SearchView設(shè)置SearchableInfo。SearchableInfo中的屬性用來顯示標(biāo)簽,提示(hints),搜索建議,創(chuàng)建打開查詢結(jié)果和控制其他功能比如一個(gè)聲音按鈕的intents。
參數(shù)
????????????????? searchable??????? 對(duì)于一個(gè)特殊的activiey或者,能從SearchManager中檢索的SearchableInfo,全局的搜索提供者。
?
???????? public void setSubmitButtonEnabled (boolean enabled)
???????? 當(dāng)查詢不為空時(shí),顯示一個(gè)提交按鈕。如果SearchView被用來填充當(dāng)前activity的內(nèi)容,并且不會(huì)啟動(dòng)一個(gè)單獨(dú)的activity,這里提交按鈕會(huì)消失。
參數(shù)
????????????????? enabled??? 設(shè)置為True時(shí)顯示一個(gè)提交請(qǐng)求的按鈕,當(dāng)不需要請(qǐng)求按鈕時(shí)設(shè)置為false。
?
???????? public void setSuggestionsAdapter (CursorAdapter adapter)
???????? 如果你愿意,你可以設(shè)置一個(gè)定制的適配器。否則使用默認(rèn)的適配器來顯示和SearchableInfo相關(guān)的建議提供者的建議。
?????????????????? 參見
??????????????????????????? setSearchableInfo(SearchableInfo)
?
補(bǔ)充
文章精選
Android ApiDemo示例解析(36):App->Search->Invoke Search
SearchView默認(rèn)擴(kuò)展
?????????????????? SearchViewを使用してListViewのアイテムにフィルターをかける
?
?