3

アプリのデータを表示するようにクイック検索をカスタマイズしています。その正常に動作します。問題は、検索ボタンをクリックすると、検索履歴が表示されないということです。検索履歴(以前に検索したキーワード)を取得するにはどうすればよいですか?

4

1 に答える 1

2

developer.android.comのチュートリアルを実行すると、探しているものが見つかると思います。

http://developer.android.com/guide/topics/search/adding-recent-query-suggestions.html

秘訣は、SearchRecentSuggestionsProviderを拡張するContentProviderを実装することです。これは単純なクラスです。

public class MySuggestionProvider extends SearchRecentSuggestionsProvider {
  public final static String AUTHORITY = "com.example.MySuggestionProvider";
  public final static int MODE = DATABASE_MODE_QUERIES;

  public MySuggestionProvider() {
      setupSuggestions(AUTHORITY, MODE);
  }
}

マニフェストにプロバイダーを追加し、searchable.xmlファイルを更新してプロバイダーを認識できるようにすることを忘れないでください。

<searchable xmlns:android="http://schemas.android.com/apk/res/android"
  android:label="@string/app_label"
  android:hint="@string/search_hint"
  android:searchSuggestAuthority="com.example.MySuggestionProvider"
  android:searchSuggestSelection=" ?" >
</searchable>

また、検索可能なアクティビティに検索を保存する必要があります。

if (Intent.ACTION_SEARCH.equals(Intent .getAction())) {
  String query = Intent .getStringExtra(SearchManager.QUERY);
  SearchRecentSuggestions suggestions = new SearchRecentSuggestions(this,
      MySuggestionProvider.AUTHORITY, MySuggestionProvider.MODE);
  suggestions.saveRecentQuery(query, null);
}
于 2010-11-24T08:47:57.327 に答える