編輯:Android開發實例
五、使用Search Dialog
search dialog提供了一個上浮在屏幕上方的搜索條,應用程序的圖標顯示在搜索條的左邊。當用戶在輸入的時候,它可以提供建議的搜索關鍵字。 當用戶自行搜索的時候,系統會把它的搜索關鍵字searchable activity來執行真正的搜索。 但是如果你的設備使用的是Android 3.0,(或更高版本),你可以考慮使用search widget。<activity>
元素中加入<meta-data>。
這個<meta-data>必須包含“
android:value”屬性,該屬性指明了
searchable activity的類名,
還必須包括屬性“android:name”
,且其值必須為 "android.app.default_searchable"
.
下面的例子就聲明了兩個searchable activity(SearchableActivity和
OtherActivity),
OtherActivity
也是在它的search dialog中使用SearchableActivity
執行searches操作。
示例4:
<application ... >
<!-- this is the searchable activity; it performs searches -->
<activity android:name=".SearchableActivity" >
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
<!-- this activity enables the search dialog to initiate searches
in the SearchableActivity -->
<activity android:name=".OtherActivity" ... >
<!-- enable the search dialog to send searches to SearchableActivity -->
<meta-data android:name="android.app.default_searchable"
android:value=".SearchableActivity" />
</activity>
...
</application>
因為在OtherActivity
中已經包含了一個<meta-data>元素,它聲明了使用哪個searchable activity來執行搜索,所以它的search dialog也變得可用。
按下手機的
SEARCH按鈕(如果有的話)或調用onSearchRequested()都將激活search dialog.
一旦用戶在search dialog中執行search操作, 系統將啟動SearchableActivity
並向其傳送ACTION_SEARCH
intent.
提示:searchable activity 自己默認就提供了the search dialog ,且它的searchable activity就是自己本身,所以不需要再聲明.
如果你想為你的應用程序的每個activity 都提供該search dialog, 那麼請
<meta-data>
元素加入<application>
作為其兒子, 而不是加入到每個<activity>
. 通過這種方式, 每個activity 都繼承了該值, 提供search dialog, 並把searches傳送到同一個searchable activity. (如果你有多個searchable activities, 你可以在單個activitiy中加入不同的<meta-data>來聲明
searchable activity,這樣就重寫了默認的searchable activity )六、如何啟動search dialog
正如上面所提到的,如果當前activity聲明了使用searchable activity,那麼按下
手機的
SEARCH按鈕(如果有的話)或調用onSearchRequested()都將激活search dialog.然而,SEARCH按鈕並不是所有的設備上都有,所以你需要在你的UI中提供一個搜索按鈕,
以便通過調用onSearchRequested()激活search dialog 。
例如,你可以在Options Menu的一個菜單項或在你的activity的布局的按鈕中調用
onSearchRequested()來啟動
search dialog.search_icons.zip 文件中有針對medium and high density屏幕的搜索圖標,你可以在你的搜索菜單項或按鈕中使用它(low-density screens scale-down the hdpi image by one half).
你也可以使用"type-to-search"功能, 這樣當用戶在鍵盤進行輸入的時候,將激活search dialog,並且是直接輸入到search dialog.
你可以在activity的
onCreate()
中調用setDefaultKeyMode
(DEFAULT_KEYS_SEARCH_LOCAL
)來開啟該功能
android:gravity:設置的是控件自身上面的內容位置 android:layout_gravity:設置控件本身相對於父控件的顯示位置。 看下如下代碼段
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我
JSON代表JavaScript對象符號。它是一個獨立的數據交換格式,是XML的最佳替代品。本章介紹了如何解析JSON文件,並從中提取所需的信息。Android提供了四個
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我