История поиска в Android быстрый поиск - PullRequest
3 голосов
/ 18 ноября 2010

Я настраиваю быстрый поиск для отображения данных из моего приложения. Работает нормально. Теперь проблема в том, что, когда я нажимаю на кнопку поиска, я не могу увидеть историю поиска. Что я должен сделать, чтобы получить историю поиска (ранее искали ключевые слова)?

1 Ответ

2 голосов
/ 24 ноября 2010

Если вы пройдете учебник на developer.android.com, я думаю, вы найдете то, что ищете:

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

Хитрость заключается в реализации ContentProvider, которыйрасширяет SearchRecentSuggestionsProvider.Это простой класс:

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);
}
...