精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為Android應用添加搜索功能

譯文
移動開發 Android
在Android應用中增加檢索功能是個很大的討論題目。在很多移動設備中的主屏幕中,都內置了快速檢索的選項,稍微舊點的設備的話會有檢索的按鈕。用戶通過使用快速檢索文本框,能快速檢索各種app應用或者通訊錄的內容。很多app應用也提供了本地搜索功能,能讓用戶盡快地找到所需要的信息。

【51CTO譯文】在本系列共兩篇的教程中,將指導開發者如何利用Android的 搜索框架進行搜索功能的開發。在***篇就是本文中,將讓開發者了解Android的搜索框架,在第二篇教程中,將展示關于搜索建議和全局搜索整合到app應用中去。

本地搜索 VS 全局搜索

我們先來看下在Android的搜索框架中,本地搜索和全局搜索兩個概念和它們之間的區別。

本地搜索

指的是由app應用本身提供的搜索功能,這對任何的app應用都應該***提供這樣的功能,比如一個食譜的app應用應該能讓用戶在這個應用中根據關鍵字去進行搜索。本地搜索是在某一app內進行的,不同的app應用之間不能進行互相的搜索。

全局搜索

另一方面,全局搜索能讓用戶在主屏幕中通過快速搜索框根據關鍵字,在各app中展開相關的搜索,Android使用了多種數據源來為全局搜索提供幫助。比如下圖中,展示了在Android平板系統中,可以看到左邊部分是用戶輸入的搜索內容,使用的是google的搜索,檢索出來的結果中,甚至能包含用戶機器上安裝的app應用的標題,它們展示在右邊。

用戶對于全局搜索的體驗是跟本地搜索的是完全不同的。全局搜索的功能中,可以使用google進行搜索,搜索的范圍包括安裝到本地機器的app應用,通訊錄等,甚至包括某些允許使用全局搜索的app的檢索結果。下圖中,展示的是可以進行全局搜索的數據來源,可以看到包括了web,各app應用,音樂,消息和通訊錄。

可以看到,一個好的app應用,應該盡可能在上圖中出現,這樣用戶在搜索時,才會優先考慮對其進行檢索,更方便用戶的操作。在本教程的第2篇中,將更詳細指導用戶如何去進行全局檢索。

在APP應用中啟用搜索

在app應用中,至少要執行如下的三個步驟,才能讓app應用能夠進行檢索。如果要提供搜索建議,還需要執行第4步:

  1. 編寫搜索配置的XML文件
  2. 編寫搜索的activity類
  3. 在Android的manifest.xml文件中,對兩面兩個步驟的工作進行配置。
  4. 如果要使用搜索建議,則需要增加一個contentprovider。

配置搜索的XML配置文件

首先看下如何配置搜索的XML配置文件。先命名配置文件名稱為searchable.xml,保存在res/xml文件夾中。然后需要設置搜索框的文本,并且應該增加一個hint的提示文本信息,如下代碼所示:

  1. <searchable  
  2. xmlns:android="http://schemas.android.com/apk/res/android" 
  3. android:label="@string/search_label"> 
  4. android:hint="@string/search_hint" 
  5. </searchable> 

關于搜索配置文件有很多的配置選項,建議參考Android的手冊可以獲得更多:

http://developer.android.com/guide/topics/search/searchable-config.html

增加搜索的Activity

當用戶進行搜索時,Android調用activity進行搜索,代碼如下:

  1. publicclass SampleSearchActivity extends ListActivity { 
  2. public void onCreate(Bundle savedInstanceState) { 
  3. super.onCreate(savedInstanceState); 
  4. handleIntent(getIntent()); 
  5. }
  6. public void onCreate(Bundle savedInstanceState) {  
  7. super.onCreate(savedInstanceState);  
  8. handleIntent(getIntent());  
  9. }  
  10. public void onNewIntent(Intent intent) {  
  11. setIntent(intent);  
  12. handleIntent(intent);  
  13. }  
  14. public void onListItemClick(ListView l,  
  15. View v, int position, long id) {  
  16. // 點每個搜索結果時的處理代碼  
  17. }  
  18. private void handleIntent(Intent intent) {  
  19. if (Intent.ACTION_SEARCH.equals(intent.getAction())) {  
  20. String query =  
  21. intent.getStringExtra(SearchManager.QUERY);  
  22. doSearch(query);  
  23. }  
  24. }  
  25. private void doSearch(String queryStr) {  
  26. //執行真正的查詢結果處理  
  27. }  

在上面的代碼中,在handleIntent方法中,當按下搜索按鈕,系統就會自動發送Intent,action是Intent.ACTION_SEARCH,然后通過intent.getStringExtra(SearchManager.QUERY);獲得要搜索的字符串。

其中為什么要包含onNewIntent()方法呢?主要是因為Android的back后退機制。Android會默認把每一個新的activity放到activity棧的頂部。如果用戶點了后退鍵,則會關閉棧頂部的activity。嘗試考慮一種情況,用戶搜索一個內容并且系統列出了結果,如果用戶發現結果不是他所要的,或者希望重新檢索,則會重新點擊搜索按鍵,這樣將會產生一個新的搜索activity的實例,在activity棧中就會有兩個搜索的activity,這是開發者并不期待的,所以,需要將這個搜索的activity聲明為singleTop類型的activity,這樣的話,無論用戶按返回鍵還是盡心個多次的搜索,在acitivty棧中始終保持的是一個搜索activity的實例。因為當activity被設置為singleTop的加載模式時,如果堆棧的頂部已經存在了該Activity,那么,它便不會重新創建,而是調用onNewIntent。如果,該Activity存在,但不是在頂部,那么該Activity依然要重新創建。

mainifest配置文件

接下來,需要對manifest配置文件進行配置,必須要對其中進行如下配置:

  • 搜索的activity.
  • 使用搜索的intent
  • activity啟動模式
  • searchable.xml中的元數據
  • 更多的定義搜索的元數據

下面是典型的一個搜索的配置

  1. <application 
  2. android:icon="@drawable/icon" 
  3. android:label="@string/app_name" 
  4. android:name=".YourApp" > 
  5. <meta-data 
  6. android:name="android.app.default_searchable" 
  7. android:value=".YourSearchActivity" /> 
  8. <activity 
  9. android:label="@string/app_name" 
  10. android:launchMode="singleTop" 
  11. android:name=".YourSearchActivity" > 
  12. <intent-filter > 
  13. <action android:name="android.intent.action.SEARCH" /> 
  14. </intent-filter> 
  15. <intent-filter > 
  16. <action android:name="android.intent.action.VIEW" /> 
  17. </intent-filter> 
  18. <meta-data 
  19. android:name="android.app.searchable" 
  20. android:resource="@xml/searchable" /> 
  21. </activity> 
  22. </application> 

在上面的典型配置中,要注意如下幾點:

1)由于當調用搜索activity時,Android調用的是android.intent.action.SEARCH作為搜索的intent,所以必須在intent-filter中包含android.intent.action.SEARCH。

2)在<meta-data>中,指出了searchable.xml的位置

3)同樣在<meta-data>中,通過:

  1. <meta-data 
  2. android:name="android.app.default_searchable" 
  3. android:value=".YourSearchActivity" /> 

指出了當執行搜索的字符串提交時,將調用哪一個activity去進行處理。

自定義搜索

對于app應用來說,***的還是能自定義搜索功能,并且能清晰告訴用戶:你的app應用能支持搜索。

要注意的是,在Android的Honeycomb 和Ice Cream Sndewich版本中,已經不再有一個搜索的按鈕了。取而代之的是在action bar中顯示搜索的按鈕。因此,一種很好的方式是通過在actionbar中同時加入搜索按鈕,好像如下圖,是在Android 2.2上運行的效果。

當用戶開始搜索時,在activity中要打開一個搜索的對話框,這可以通過調用onSearchRequested()實現,這個是Android中Activity類的方法,并且會調用startsearch()方法,這個接下來會討論。

在搜索中加入指定數據

默認的搜索有時不能滿足需要,可能要需要使用全局搜索,也可能需要一些額外的數據,在這個情況下,可以重寫onSearchRequestd()方法并且自己調用startSearch方法,其中startSearch的方法中定義的參數如下:

參數

類型

含義

initialQuery

string

搜索框中默認的字符串

selectInitialQuery

boolean

這個標志表明搜索框中的內容是否可以被選擇,如果設置為true,則會覆蓋initialQuery

appSearchData

Bundle

其他傳遞到搜索activity中的數據

globalSearch

boolean

決定是否使用全局搜索

在默認調用startSearch()方法時,會默認使用如下的值:null, false, null, false,其含義為只使用本地搜索,不附加任何的其他的值。

讓APP應用支持語音搜索

如果讓APP應用支持用戶使用語音進行搜索,那對用戶來說就更方便了!在Android中,這只需要增加一些代碼就可以實現了。下圖是當使用了語音設置后,Android會出現一個麥克風,讓用戶使用語音。

但要注意,不是所有的設備都支持語音搜索的,要使用語音搜索,需要設置配置選項如下:

  1. android:voiceSearchMode= 
  2. "showVoiceSearchButton|launchRecognizer" 

其中voiceSearchMode有兩個選項,showVoiceSearchButton和launchRecognizer,其中showVoiceSearchButton是必須的,建議使用launchRecognizer這個選項。而另外一個重要的選項是android:voiceLanguageModel,它有兩個選項分別是:web_search和free_form,***建議用戶使用web_search,意思是使用語言模型在Web上搜索,這很適合用戶不是很準確朗讀短語句子的情景,而free_form選項則適合比如在一些應用中如SMS或郵件中使用。還要注意的是,使用語音檢索,必須要在聯網的環境下使用。

小結

本文介紹了Android搜索的基本框架的使用,也介紹了語音搜索中要注意的問題,在下一篇教程中,將介紹如何為搜索添加自動提示幫助,以及如何讓你的APP在Android的搜索菜單中出現。敬請期待51CTO下篇譯文吧。

責任編輯:佚名 來源: 51CTO.com
相關推薦

2012-08-06 09:52:03

Android搜索功能

2025-09-03 04:00:00

AgentCore智能體權限

2023-08-04 19:26:38

谷歌AI

2013-09-02 15:41:59

Windows應用商店

2009-03-13 08:37:35

GoogleAndroidiPhone

2019-07-02 08:00:00

JavaScriptWeb對象

2017-03-07 12:28:27

Android應用角標

2011-06-02 11:37:34

Android 檢索

2021-10-14 08:07:33

Go 應用Prometheus監控

2009-05-07 20:05:21

CASRMVmware

2013-12-08 21:33:31

谷歌移動搜索應用內搜索

2014-12-31 17:12:54

模糊查詢模糊查詢

2020-01-17 18:40:38

Python游戲代碼

2009-06-14 21:47:14

MIDIJava程序

2010-06-03 10:46:09

谷歌新功能

2021-09-22 10:17:50

iPhone心理健康蘋果

2025-07-09 08:11:38

AIFastAPI開發

2013-09-09 16:37:48

iOS應用添加內置收費In App Purc

2010-03-04 17:32:38

Android Mar

2021-12-13 09:31:59

技術人工智能傳感器
點贊
收藏

51CTO技術棧公眾號

国产精品久久久久久亚洲影视| 天堂中文在线资源| 国产精品二线| 激情综合五月| 国产一区二区三区四区三区四| 午夜激情一区二区三区| 成人欧美在线观看| 偷拍夫妻性生活| 国产美女福利在线观看| 麻豆国产欧美一区二区三区| 亚洲欧美国产日韩天堂区| 日韩一级特黄毛片| 一区二区三区精| 国产成人精品999在线观看| 亚洲综合色网站| 国产有码在线一区二区视频| 精品成人av一区二区三区| 成人做爰免费视频免费看| 久久久青草青青国产亚洲免观| 欧美精品18videosex性欧美| 亚洲 自拍 另类 欧美 丝袜| 粉嫩av一区二区夜夜嗨| 影视一区二区| 欧美日韩国产小视频在线观看| 欧洲亚洲一区二区| 在线观看免费国产视频| h视频久久久| 亚洲国产精品影院| 国产乱子伦精品| 久久草视频在线| 91亚洲一区| 欧美日韩不卡视频| 久久成人免费观看| 色天堂在线视频| 久久精品中文| 亚洲最新av网址| 中文字幕天天干| 成人免费在线视频网| 免费成人在线观看| 日韩亚洲一区二区| 国产在线视频三区| 超鹏97在线| 国产成人av自拍| 亚州成人av在线| 亚洲av无码一区二区三区观看| 美女的胸无遮挡在线观看| 久久综合九色欧美综合狠狠| 国产成人久久久| 欧美自拍偷拍网| 国产一区二区av在线| 亚洲国产精品影院| 天天综合五月天| 黄色福利在线观看| 国产精品资源网| 2025国产精品视频| 五月天婷婷丁香网| 综合色就爱涩涩涩综合婷婷| 欧美视频在线免费看| 亚洲精品国产精品国自产观看| 亚洲天堂视频网| 国自产拍偷拍福利精品免费一 | 亚洲国产高清av| 91精品店在线| 一区二区三区四区激情 | 精品在线网站观看| 欧美最猛黑人xxxxx猛交| 国产一区一区三区| 天天操天天射天天舔| 成人视屏免费看| 国产精品久久久久久亚洲调教| 伊人久久久久久久久久久久| 国产精品久久久久久久| 亚洲高清福利视频| 色噜噜狠狠永久免费| 17videosex性欧美| 欧美国产视频在线| 动漫一区二区在线| 最新黄色网址在线观看| 在线欧美三区| 久久精品99久久久久久久久| 亚洲一区二区三区无码久久| 日本一道高清一区二区三区| 欧美一区二区私人影院日本| 国产成人无码一二三区视频| 国产理论电影在线| 狠狠躁夜夜躁人人爽超碰91| 8x8x华人在线| 波多野结衣在线网站| 亚洲国产精品黑人久久久| 国产综合精品一区二区三区| 国产一区二区三区三州| 国产精品一区二区在线看| 国产精品一区二区三区免费| 激情小视频在线| 99久久国产综合精品麻豆| 亚洲专区国产精品| 中文字幕在线视频第一页| 免费日韩av片| 久久久亚洲福利精品午夜| 疯狂撞击丝袜人妻| 欧美呦呦网站| 国产午夜精品全部视频播放| 丰满少妇一区二区三区| 日韩中文字幕无砖| 欧美一区二区三区喷汁尤物| 中国极品少妇xxxx| 136福利精品导航| 日韩一区二区精品在线观看| 红桃视频 国产| 久久亚洲精品中文字幕| 在线国产亚洲欧美| 在线观看网站黄| 亚洲三级性片| 欧美国产第一页| 欧美成人免费观看视频| 一个色综合网| 日韩av观看网址| 无码人妻aⅴ一区二区三区有奶水 无码免费一区二区三区 | 日本泡妞xxxx免费视频软件| 亚洲春色h网| 另类视频在线观看| 欧美色视频一区二区三区在线观看| 激情亚洲成人| 成人淫片在线看| 黄色在线小视频| 亚洲高清在线视频| 天天干天天玩天天操| 一区三区在线欧| 久久久欧美精品| 国产福利第一页| 国产成人高清在线| 日韩一区二区三区高清| av网在线观看| 自拍偷自拍亚洲精品播放| 一区在线电影| 在线看女人毛片| 亚洲精品国产精品自产a区红杏吧| 久久久精品有限公司| 天天操天天干天天爱| 亚洲天堂久久久久久久| 成人在线免费观看网址| 99re66热这里只有精品4| 欧美性生活一区| 日韩在线一区视频| 九九热精品视频在线观看| 久久久久久久久国产精品| 国产农村老头老太视频| 国产不卡在线视频| 中文字幕av日韩精品| 日韩欧美看国产| 9191精品国产综合久久久久久| 曰本三级日本三级日本三级| 天天天综合网| 国产伦精品一区二区三区精品视频| 国产一区二区三区视频免费观看| 国产日韩精品久久久| 在线观看成人一级片| 自拍偷自拍亚洲精品被多人伦好爽| 日韩国产在线看| 国产探花视频在线播放| 一本精品一区二区三区| 亚洲a区在线视频| 成年视频在线观看| 欧美一区二区三区视频| 免费在线观看亚洲| 久久综合伊人| 成人免费看片网址| 激情av在线播放| 亚洲成人动漫在线播放| 好吊操这里只有精品| 91视频com| 国产在线拍揄自揄拍无码| 国产精品一区二区精品视频观看| 久久这里只有精品99| 国产黄色av网站| 一区二区高清在线| 亚洲自拍偷拍精品| 男女精品网站| 亚洲视频电影| 依依综合在线| 精品久久久久久久久久久久久久久| 色哟哟精品观看| 精品9999| 蜜桃传媒视频第一区入口在线看| av毛片在线看| 精品国产百合女同互慰| 国产一区二区三区视频播放| 在线视频精品| 99在线视频免费观看| 国产黄色免费在线观看| 欧美二区乱c少妇| 摸摸摸bbb毛毛毛片| 国产精品美女久久久| 北条麻妃高清一区| 中文字幕高清在线播放| 亚洲国产精品一区二区三区| 秋霞av一区二区三区| 亚洲三级视频在线观看| 国产黄色三级网站| 捆绑紧缚一区二区三区视频| 国产freexxxx性播放麻豆| 国产日韩一区二区三免费高清| 欧美极品欧美精品欧美视频| 国产精品一级伦理| 日韩精品在线网站| 国产女人被狂躁到高潮小说| 91免费观看国产| 特级黄色片视频| 亚洲xxx拳头交| 成人精品视频99在线观看免费 | 欧美成人四级hd版| 亚洲视频在线观看免费视频| 亚洲韩国精品一区| 最新版天堂资源在线| 奇米色一区二区三区四区| 另类欧美小说| 日本在线成人| 国产精品美女久久| 丝袜诱惑一区二区| 久久6精品影院| 成人免费观看在线视频| 色屁屁一区二区| 微拍福利一区二区| 成人性色生活片| 中文字幕在线观看日| 亚洲成人三区| 青青成人在线| 欧美黄色网视频| 亚洲在线视频观看| 小说区图片区亚洲| 久久成人综合视频| 国产美女性感在线观看懂色av | 中文字幕第三区| 美女在线视频一区| 国产99久久九九精品无码| 亚洲第一福利社区| 高清不卡一区二区三区| 四虎影视精品永久在线观看| 国产精品444| 欧美7777| 欧美一区二区三区免费观看| 182在线播放| 国产69精品99久久久久久宅男| 国产激情在线| 久久久精品一区二区| 在线看的av网站| 中文字幕日韩免费视频| av网站在线观看免费| 欧美日韩免费不卡视频一区二区三区 | 欧美成年人视频在线观看| 日韩一区精品字幕| 香蕉精品视频在线| 日韩av在线播放网址| 91夜夜未满十八勿入爽爽影院 | 国产精品嫩草影院8vv8| 美美哒免费高清在线观看视频一区二区 | 尤物视频在线看| 久青草国产97香蕉在线视频| 高清全集视频免费在线| 欧美成人久久久| 日皮视频在线观看| 亚洲老板91色精品久久| 日批免费在线观看| 亚洲精品久久久久中文字幕二区| 亚洲 国产 欧美 日韩| 欧美日韩电影一区| 一级α片免费看刺激高潮视频| 欧美精选在线播放| 99在线小视频| 亚洲国产精品资源| 撸视在线观看免费视频| 日韩欧美一区二区在线视频| 国产黄色小视频在线观看| 欧美xxxx老人做受| 天堂91在线| 日韩午夜av电影| 刘亦菲久久免费一区二区| 日韩精品久久久久| 懂色av中文在线| 久久福利视频导航| 第四色日韩影片| 日本精品一区二区三区在线播放视频| 欧美亚洲大片| 91久久久久久久久久久久久| 成人资源在线| 色综合视频二区偷拍在线| 精品按摩偷拍| 茄子视频成人在线观看| 亚洲在线久久| 又粗又黑又大的吊av| 日韩1区2区日韩1区2区| 天天操夜夜操很很操| 97久久精品人人做人人爽| 欧美人妻一区二区三区| 一区二区三区精密机械公司| 精品不卡一区二区| 亚洲丶国产丶欧美一区二区三区| 在线免费黄色av| 亚洲成a人v欧美综合天堂| 丁香社区五月天| 91精品久久久久久久99蜜桃| 无码精品视频一区二区三区| 日韩最新在线视频| 国产免费拔擦拔擦8x在线播放| 欧美国产日本高清在线| 极品美女一区| 97超碰人人看人人| 欧美精品三级在线| 久久日韩精品| 午夜久久影院| 蜜桃视频一区二区在线观看| 新狼窝色av性久久久久久| 亚洲第一色av| 国产亚洲欧美色| 欧美激情精品久久| 色婷婷综合久色| 无码人妻av免费一区二区三区| 欧美一二区视频| 成人亚洲性情网站www在线观看| 欧美高清激情视频| 97欧美成人| 欧美精品一区二区三区久久| 日韩电影不卡一区| 欧美综合激情| 亚洲精一区二区三区| 久久久999视频| 国产精品资源网站| 女人18毛片毛片毛片毛片区二 | 中国一级片黄色一级片黄| 亚洲精品v天堂中文字幕| 国产黄网站在线观看| 亲子乱一区二区三区电影| 九九热线视频只有这里最精品| 国产精品久久7| 欧美精品综合| 国产av天堂无码一区二区三区| 亚洲欧美大片| 极品白嫩少妇无套内谢| 亚洲欧美区自拍先锋| 国产无遮挡又黄又爽又色| 日韩欧美在线视频观看| 日本xxxx人| 国产香蕉97碰碰久久人人| 日本不卡网站| 国内精品一区二区| 最新日韩欧美| 强迫凌虐淫辱の牝奴在线观看| 亚洲高清免费观看| 亚洲国产精品suv| 亚洲色图综合网| 国产美女av在线| 97超碰国产精品女人人人爽| 成人黄色免费观看| 四虎永久在线精品免费一区二区| 久久久www| 熟女少妇内射日韩亚洲| 欧美三区在线视频| 亚洲AV无码一区二区三区性| 久久久精品国产亚洲| 精品国产第一国产综合精品| 天天爱天天做天天操| 国产在线精品一区二区夜色| 中国黄色a级片| 欧美日韩在线观看视频| 欧美套图亚洲一区| 国产精品pans私拍| 亚洲精品成人一区| 在线观看国产一区| 国产69精品久久久久毛片 | 国产中文在线| 国产精品视频专区| 亚洲一区欧美| 国产精品成人99一区无码| 国产精品天干天干在观线| 在线视频欧美亚洲| 欧美乱大交xxxxx| 国产劲爆久久| 国产又粗又硬又长| 国产激情91久久精品导航 | 亚洲精华国产精华精华液网站| 国a精品视频大全| 国产日产一区| 在线a免费观看| 欧美日韩国产中文精品字幕自在自线 | 久久国产精品色婷婷| 免费在线观看你懂的| 亚洲一区二区偷拍精品| 天堂成人在线| 成人av在线网址| 韩日视频一区| 在线观看福利片| 91精品国产品国语在线不卡| av中文在线资源库| 亚洲一卡二卡区| 成人亚洲一区二区一| 在线播放一级片| 97久久精品国产| 久久国产亚洲| 精品夜夜澡人妻无码av| 91精品国产麻豆国产自产在线|