Mam widget wyszukiwania (SearchView), wyświetlając niestandardowe sugestie podczas pisania. Śledziłem official guide, aby dodać ostatnie zapytania do sugestii, ale wciąż mam TYLKO propozycje niestandardowe.
Dla każdego wyszukiwania, mój fragment wywołać tę funkcję (niezweryfikowany):ostatnie wyszukiwania nie są wyświetlane, niestandardowe sugestie to
private void addQueryToRecent(String query) {
SearchRecentSuggestions suggestions = new SearchRecentSuggestions(getActivity(),
MyCustomSuggestionProvider.AUTHORITY,
MyCustomSuggestionProvider.MODE);
suggestions.saveRecentQuery(query, "recent");
}
Mój dostawca sugestia wydaje ok:
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=" ?" />
oczywisty:
<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 do that post, mam mieć niedawne wyszukiwarki dB przy danych/data/app.package.name/baz/databasename.db, ale nie wydaje się ...
Albo Czy mam dodać "ostatnie sugestie wyszukiwania" w kursor, który zwraca MyCustomSuggestionProvider.query()? Każdy pomysł jest mile widziany ...
Nie użyłeś SearchSuggestionProvider, jak to możliwe? –