Ho un widget di ricerca funzionante e voglio aggiungere suggerimenti per la cronologia delle ricerche. Ho seguito il tutorial per Android (http://developer.android.com/guide/topics/search/adding-recent-query-suggestions.html) e mentre la ricerca continua a funzionare, non vengono visualizzati suggerimenti. Qui è il mio codice:Android SearchRecentSuggestions - i suggerimenti non vengono visualizzati durante la digitazione in SearchView
fornitore di contenuti
package com.mypackage; import android.content.SearchRecentSuggestionsProvider; public class SearchHistoryProvider extends SearchRecentSuggestionsProvider { public final static String AUTHORITY = SearchHistoryProvider.class.getName(); public final static int MODE = DATABASE_MODE_QUERIES; public SearchHistoryProvider() { setupSuggestions(AUTHORITY, MODE); } }
Dichiarare provider nel manifesto
<provider android:name=".SearchHistoryProvider" android:authorities="com.mypackage.SearchHistoryProvider"> </provider>
configurazione ricercabile
<?xml version="1.0" encoding="utf-8"?> <searchable xmlns:android="http://schemas.android.com/apk/res/android" android:label="@string/app_name" android:hint="@string/search_hint" android:voiceSearchMode="showVoiceSearchButton|launchRecognizer" android:searchSuggestAuthority="com.mypackage.SearchHistoryProvider" android:searchSuggestSelection=" ?"> </searchable>
Salvataggio delle query al fornitore di contenuti (nella mia attività ricercabile)
private void handleIntent(Intent intent) { if (Intent.ACTION_SEARCH.equals(intent.getAction())) { String query = intent.getStringExtra(SearchManager.QUERY); SearchRecentSuggestions suggestions = new SearchRecentSuggestions(this, SearchHistoryProvider.AUTHORITY, SearchHistoryProvider.MODE); suggestions.saveRecentQuery(query, null); // Collapse the search view as a search is performed MenuItem searchItem = mMenu.findItem(R.id.search); SearchView searchView = (SearchView) mMenu.findItem(R.id.search).getActionView(); searchItem.collapseActionView(); searchView.setQuery("", false); // send the query to the global search activity for loading the data Intent globalSearchIntent = new Intent(this, GlobalSearchFragmentActivity.class); GroceryOTGUtils.copyIntentData(intent, globalSearchIntent); globalSearchIntent.putExtra(GlobalSearchFragmentActivity.GLOBAL_SEARCH, true); startActivity(globalSearchIntent); } }
Tutto funziona bene, tranne i suggerimenti in realtà non si presentano (la ricerca sembra la stessa di prima che io li aggiunsi). Qualsiasi aiuto sarebbe molto apprezzato!
Ah, ho risolto il problema. È stato un errore nella configurazione del manifest Android (il nome del provider). Come posso rimuovere la taglia? –
@ Eng.Fouad se metti il bounty per le altre domande non puoi rimuovere bounty! –
@ Eng.Fouad moderatore può rimborsare la taglia in casi estremi, puoi provare e contrassegnare questo post, scegliere "Altro" e giurare il tuo caso. Non è ancora troppo tardi. :) –