天天看點

Android開發之核心特性SearchView的開發使用(源代碼分享)

      在Android上,搜尋是一個核心使用者特性。使用者可以搜尋可用的任何資料,不管内容是存促于裝置本身或者需要通過網絡通路。Android提供了一個搜尋架構為使用者建立一個一緻的搜尋體驗,可以幫助你實作搜尋應用程式。搜尋架構提供兩種搜尋模式:一個搜尋對話框(Search Dialog)位于搜尋螢幕的頂部或視窗小部件(SearchView),可以将其嵌入到你的布局中。在這兩種情況下,Android系統将幫助你搜尋實作傳遞執行搜尋的任務給一個特定的Activity。效果如下圖所示。

Android開發之核心特性SearchView的開發使用(源代碼分享)

       當使用者需要執行一個搜尋的搜尋對話框或搜尋小部件,系統建立一個Intent和存儲使用者Query,然後系統會啟動你事先聲明的用于執行資料查找的Activity,,使用它進行資料搜尋。總共需要以下三個步驟。

(1)建立一個Search.XML檔案在res/xml檔案中

     一個XML檔案,配置一些search dialog或widget的設定。它包括設定特性,比如語音搜尋,搜尋建議和提示文本搜尋框。

 (2)聲明一個SearchActivity

          這個Activiy接收搜尋使用者的資料,并顯示搜尋結果。特别注意的是為了使調用的Activity找到這個SearchActivity,你必須首先聲明Android搜尋Activitydao到你的清單檔案。如下所示。

  SearchActivity要完成以下三個步驟。1 接收查詢 2 搜尋您的資料3 展示結果。

     之前看部落格又看到有人說onNewIntent()不知道幾時促發的,我研究了下官方文檔上面是這麼寫的。如果我們将android:launchMode設定為“singleTop”,然後SerachActivity接收ACTION_SEARCH intent 會調用 onNewIntent()方法。

(3)建立一個搜尋界面

   搜尋界面包含兩種類型SearchDialog和SearchWidget。SerachDialog:預設情況下,搜尋對話框隐藏,我們通過調用onSearchRequested()(當使用者按搜尋按鈕)讓他顯示在螢幕上端,SearchWidget :允許使用者将搜尋框放在布局的任意位置,但通常需要跟actionbar結合。

  搜尋界面的Activity也需要在清單檔案聲明