Ho un widget di ricerca (SearchView), visualizzazione di suggerimenti personalizzati durante la digitazione. Ho seguito official guide per aggiungere query recenti ai suggerimenti, ma ho ancora solo suggerimenti personalizzati.
Per ogni ricerca, il mio frammento chiamare questa funzione (verificato):le ricerche recenti non vengono visualizzate, i suggerimenti personalizzati sono
private void addQueryToRecent(String query) {
SearchRecentSuggestions suggestions = new SearchRecentSuggestions(getActivity(),
MyCustomSuggestionProvider.AUTHORITY,
MyCustomSuggestionProvider.MODE);
suggestions.saveRecentQuery(query, "recent");
}
mio provider suggerimento sembra 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=" ?" />
manifestare:
<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>
di tronchi con a that post, dovrei avere una recente db ricerca in dati/data/app.package.name/database/databasename.db, ma non mi sembra ...
O forse dovrei aggiungere io stesso i "suggerimenti di ricerca recenti" nel cursore restituito da MyCustomSuggestionProvider.query()? Qualsiasi idea è benvenuto ...
Non hai utilizzato un SearchSuggestionProvider, come mai? –