У меня есть виджет поиска (SearchView ), отображающий пользовательские предложения при наборе текста. Я следовал официальному руководству , чтобы добавить недавние запросы в предложения, но у меня все еще есть ТОЛЬКО пользовательские предложения.
Для каждого поиска мой фрагмент вызывает эту функцию (проверено):
private void addQueryToRecent(String query) {
SearchRecentSuggestions suggestions = new SearchRecentSuggestions(getActivity(),
MyCustomSuggestionProvider.AUTHORITY,
MyCustomSuggestionProvider.MODE);
suggestions.saveRecentQuery(query, "recent");
}
Мой поставщик предложений выглядит нормально:
public class MyCustomSuggestionProvider extends SearchRecentSuggestionsProvider {
public final static String AUTHORITY = "com.zgui.musicshaker.provider.MyCustomSuggestionProvider";
public final static int MODE = DATABASE_MODE_QUERIES | DATABASE_MODE_2LINES;
public MyCustomSuggestionProvider() {
setupSuggestions(AUTHORITY, MODE);
}
@Override
public Cursor query(Uri uri, String[] projection, String sel,
String[] selArgs, String sortOrder) {
//retrieves a custom suggestion cursor and returns it
}
}
searchable.xml:
манифест:
Согласно этому сообщению , у меня должна быть недавняя база данных поиска в data/data/app.package.name/databases/databasename.db, но я, кажется, не...
Или, может быть, я должен сам добавить «последние поисковые предложения» в курсор, который возвращает MyCustomSuggestionProvider.query ()? Приветствуются любые идеи...