????????搜索的需求平時會遇到很多,也有很多優(yōu)秀的第三方庫供我們使用,不過在一次偶然的機會,我才發(fā)現(xiàn)原來google自己已經(jīng)有一個searchView提供給我們了,慚愧啊,一直沒有用過,所以就學(xué)習(xí)了一下并且做了一個記錄.
searchview是什么?
這是官方提供給我們的解釋,其實就是一個搜索框,很簡單.searchview是有支持庫的,在v7包中,所以可以忽略掉兼容問題
A widget that provides a user interface for the user to enter a search query and submit a request to a search provider. Shows a list of query suggestions or results, if available, and allows the user to pick a suggestion or result to launch into.
為用戶提供用戶界面的小部件,用于輸入搜索查詢并向搜索提供者提交請求淀歇。顯示查詢建議或結(jié)果列表(如果可用)跪楞,并允許用戶選擇一個建議或結(jié)果來啟動瓶佳。
我們來看下他的一些屬性xml屬性
android:iconifiedByDefault????????SearchView的默認狀態(tài)诈泼。
android:imeOptions???????????????????IME選項场靴,用于設(shè)置在查詢文本字段上主卫。
android:inputType? ? ? ? ? ? ? ? ? ? ?輸入類型局骤,用于設(shè)置在查詢文本字段上。
android:maxWidth????????????????????SearchView的最大寬度(可選)昭娩。
android:queryHint????????????????????在空查詢字段中顯示的凛篙,可選查詢提示字符串。
然后再來看下幾個方法,一般我們用這些方法即可
setOnCloseListener? ? ? ?當搜索框關(guān)閉的時候調(diào)用,記得返回true;
setOnQueryTextFocusChangeListener? ? ?當搜索框獲得焦點或者市區(qū)焦點的回調(diào)
setOnQueryTextListener? ? 搜索框內(nèi)容的監(jiān)聽器,它有倆個回調(diào)
????????????????????????????????????????????onQueryTextSubmit? 是點擊提交(或者搜索按鈕時的回調(diào))
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? onQueryTextChange 是輸入框中的內(nèi)容發(fā)生變化的時候的回調(diào)
setOnSearchClickListener? 這個回調(diào)是比如你點擊搜索圖標時,搜索框展開的回調(diào)
getQuery? ? ? ? ? ? ? ? ? ? ? ? ? ??? ? 返回當前搜索框里的字符串
setSuggestionsAdapter? ? ? 設(shè)置提示adaper
setOnSuggestionListener?????????提示的監(jiān)聽回調(diào)
????????然后有些需要注意的:setSuggestionsAdapter這貨需要的是一個CursorAdapter,這個東西我只曉得和sql配合起來使用,但是我們小木一般都是網(wǎng)絡(luò)數(shù)據(jù),這樣我不太明白怎們用這個東西,所以個人不推薦用這個東西,我覺得在它下面加一個listView可能效果更好,使用起來更加簡單.
? ? ? ? 上面這些大概就是一個基本的用法,用法很簡單,但說實話其實我還是喜歡用那幾個優(yōu)秀的第三方庫,或者自己封裝一個,這個其實不是很好用.