У меня есть виджет поиска (SearchView), отображающий пользовательские предложения при наборе текста. Я следил за official guide, чтобы добавлять последние предложения к предложениям, но у меня все еще есть пользовательские предложения ТОЛЬКО.
Для каждого поиска, мой фрагмент называют эту функцию (проверено):последние запросы не отображаются, пользовательские предложения
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:
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:hint="artist, track informations..."
android:label="@string/app_name"
android:queryAfterZeroResults="true"
android:searchSuggestAuthority="com.zgui.musicshaker.provider.MyCustomSuggestionProvider"
android:searchSuggestSelection=" ?" />
манифеста:
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
<provider
android:name=".provider.MyCustomSuggestionProvider"
android:authorities="com.zgui.musicshaker.provider.MyCustomSuggestionProvider"
android:enabled="true" >
</provider>
Acording к that post, я должен иметь недавний поиск по БД данных/данных/app.package.name/базы данных/databasename.db, но я, кажется, не ...
Или, может быть, я должен добавить «последние предложения поиска» сам в курсор, который возвращает MyCustomSuggestionProvider.query()? Любая идея приветствуется ...
Вы не использовали SearchSuggestionProvider, почему? –