Android検索機能の実装方法
Androidにおける検索機能の実装には、SearchViewコントロールとSearchManagerクラスの利用が一般的です。
まず、XML レイアウトファイルに SearchView コントロールを追加する:
<SearchView
android:id="@+id/searchView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:iconifiedByDefault="false"
android:queryHint="搜索" />
次に、アクティビティ内で SearchView コントロールを探し、関連するリスナーを設定します。
SearchView searchView = findViewById(R.id.searchView);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
// 处理搜索提交事件
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
// 处理搜索框文本变化事件
return false;
}
});
onQueryTextSubmitメソッドでは検索イベントを処理して、検索を実行しその結果を表示できます。
onQueryTextChangeメソッドで検索ボックスのテキスト変更イベントを処理すると、リアルタイムで検索キーワードの予測、検索結果のフィルタリングなどの処理が行える。
また、AndroidManifest.xmlファイルに検索機能のあるActivityを検索対象として宣言する必要があり、以下のコードを追加します:
<activity
android:name=".SearchActivity"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
res/xml ディレクトリ内に searchable.xml ファイルを作成し、検索設定を定義します。
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="搜索"
android:voiceSearchMode="showVoiceSearchButton|launchRecognizer" >
</searchable>
そうすると、ユーザーが検索ボタンをクリックしたとき、システムはSearchActivityを起動し、検索機能がトリガーされます。
これはAndroidの検索機能を実装するための簡単な方法ですが、特定のニーズに応じて、検索画面と検索ロジックをさらにカスタマイズすることができます。