==Android 検索インターフェース==
[[Android]]
*http://developer.android.com/guide/topics/search/search-dialog.html
*このファイルは伝統的に、searchable.xml とし、/res/xml/ に保存されるべき
<<blockquote>>システムはこのファイルを SearchableInfo オブジェクトを初期化するのに利用する。アプリケーションからこのオブジェクトを生成できないので、設定をXMLファイルに記述する必要がある<</blockquote>>
*searchable 設定ファイルは、<<searchable> > 要素をrootノードとして含む必要がある
<<?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>>
{|class="wikitable"
*検索機能はまだ実装する必要はない。
#アクティビティが ACTION_SEARCH インテントを 受け取るように、<<intent-filter>>に宣言する#検索設定を <<meta-data> > に記述する
=====例=====
<<application ... >> <<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>>
...
<</application>>
<<blockquote><><meta-data>>要素は、android:name 属性を android.app.searchable の値とともに含まなければならない。また、android:resource 属性は、検索設定ファイルへの参照を記述する<</blockquote>>
===検索の実行===
*検索ダイアログを使用可能にするには、システムに検索可能アクティビティが検索ダイアログからクエリを受け取ることをシステムに示さなければいけない
*検索可能アクティビティを宣言するには、<<meta-data> > 要素を受け取り側のアクティビティの <<activity> > 要素に追加する。*<<meta-data> > 要素は、検索可能アクティビティクラスを特定する、android:value 属性を含む必要がある。
*また、android:name 属性を android.app.default_searchable という値とともに記述する
=====例=====
<<application ... >> <<!-- 検索可能アクティビティ; 検索を実行する -->> <<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>>
<<!-- 検索ダイアログを検索可能アクティビティの中で検索を開始するために検索ダイアログを有効にするアクティビティ -->> <<activity android:name=".OtherActivity" ... >> <<!-- 検索可能アクティビティに検索を送信するための検索ダイアログを有効にする -->> <<meta-data android:name="android.app.default_searchable" android:value=".SearchableActivity" />> <</activity>>
...
<</application>>
*OtherActivity は、<<meta-data> > 検索可能アクティビティの <<meta-data>>を 含んでいるので、アクティビティは検索ダイアログを有効化できる。
*ユーザーがこのアクティビティにいる間、デバイスの検索ボタンおよび onSearchRequested() メソッドは、検索ダイアログをアクティブにする
*ユーザーが検索を実行すると、システムは検索可能なアクティビティを開始し、ACTION_SEARCH インテントを送信する
*アプリケーションのすべてのアクティビティで検索ダイアログを提供したい場合、上記の <<meta-data> > 要素を <<application> > の子供として挿入する。
検索ダイアログは、現時点で有効になった。検索を実装する準備は整った。
=====例=====
<<?xml version="1.0" encoding="utf-8"?>> <<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/search_label"
android:hint="@string/search_hint"
android:voiceSearchMode="showVoiceSearchButton|launchRecognizer" >> <</searchable>>
*showVoiceSearchButton の値は音声検索を有効にするのに必須
*launchRecognizer は音声検索ボタンが変換されたテキストを検索アクティビティに戻す音声認識機を起動すべきか設定する
*音声検索に追加の属性を提供することができる[http://developer.android.com/guide/topics/search/searchable-config.html 設定]を参照