Searchable(搜索功能)(转)
生活随笔
收集整理的這篇文章主要介紹了
Searchable(搜索功能)(转)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章來源:http://developer.android.com/guide/topics/search/search-dialog.html
一、前言: Android為程序的搜索功能提供了統一的搜索接口,search dialog和search widget。 search dialog只能為于activity窗口的上方,search widget可以位于任何位置。 search dialog和search widget都會向我們的searchable activity發送消息(主要是搜索關鍵字)。 通過這種方式,可以為任何activity加入search dialog和search widget,系統可以啟動合適的activity來處理搜索并顯示結果。 search dialog和search widget的其他屬性如下: A:聲音搜索。 B:根據最近的搜索結果,給出搜索建議。 C:根據我們程序的實際搜索結果,給出搜索建議。 注1:search widget在 Android 3.0或更高版本才可用 注2:searchable activity才是真正執行搜索的。 二、基本知識 在開始實現搜索功能之前,請決定使用search dialog,還是search widget. 他們的搜索功能特性都有一樣,但是他們還有微小區別。 A,search dialog是一個被系統控制的UI組件。但他被用戶激活的時候,它總是出現在activity的上方,如圖一所示。 B,Android系統負責處理search dialog上所有的事件,當用戶提交了查詢,系統會把這個查詢請求傳輸到我們的searchable activity, 讓searchable activity在處理真正的查詢。當用戶在輸入的時候,search dialog還能提供搜索建議。 C,search widget是SearchView的一個實例,你可以把它放在你的布局的任何地方。 D,默認的,search widget和一個標準的EditText widget一樣,不能做任何事情。 但是你可以配置它,讓android系統處理所有的按鍵事件,把查詢請求傳輸給合適的activity,可以配置它讓它像search dialog一樣提供search suggestions。 E,search widget在 Android 3.0或更高版本才可用.?search dialog沒有此項限制 提示:?如果你想自己在search widget處理所有的用戶輸入,請使用各種回調函數和監聽接口,具體參照SearchView?。 圖一: ? 當用戶在search dialog或search widget中執行一個搜索的時候,系統會創建一個Intent,并把查詢關鍵字保存在里面, 然后啟動我們在AndroidManifest.xml中聲明好的searchable activity,并把Intent傳送給它。 實現一個可以搜索的程序,主要需要以下幾個部份: (1),search dialog or widget的配置文件。 配置一個XML文件用于配置search dialog 或widget的設置。對于search dialog,該配置文件的名字一般約定為searchable.xml (2),searchable activity。 searchable activity用于接收搜索關鍵字,并進行數據搜索和顯示搜索結果。 (3),搜索條。search dialog 或search widget * The search dialog 默認的,search dialog是隱藏。當我們按下了SEARCH鍵或在程序中調用onSearchRequested(),它將出現在屏幕的上方. * a SearchView widget 使用search widget的時候,你可以把該搜索條放在我們activity的任何地方。 Instead of putting it in your activity layout, however, it's usually more convenient for users as an action view in the Action Bar. 三、創建配置文件searchable.xml 配置文件說明了search dialog 或widget的一些屬性。包括UI,以及suggestions 和voice search behave的一些屬性。 該文件一般約定為searchable.xml并位于res/xml/目錄下。 searchable.xml必須以<searchable>element 作為根節點,且至少定義一個屬性。 比如,示例1: <?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/app_label" android:hint="@string/search_hint" > </searchable> android:label是唯一必須定義的屬性。它指向一個字符串,它應該是應用程序的名字。 實際上該label也只有在search suggestions for Quick Search Box可用時才可見。 這時該label在系統設置的Searchable項的列表中可見。 雖然android:hint屬性不是必須,但是還是推介總是定義它。它是search box用戶輸入前輸入框中的提示語。 <searchable> 還有其他的一些屬性。如果不需要search suggestions 和voice search的話,大多數的屬性是不需要的。 關于searchable.xml更多內容請參考:http://developer.android.com/guide/topics/search/searchable-config.html總結
以上是生活随笔為你收集整理的Searchable(搜索功能)(转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Configuration类在网页实现对
- 下一篇: php四种基础算法