Ich habe ein funktionierendes Such-Widget und möchte Suchverlaufsvorschläge hinzufügen. Ich folgte dem Android-Tutorial (http://developer.android.com/guide/topics/search/adding-recent-query-suggestions.html), und während die Suche noch funktioniert, werden keine Vorschläge angezeigt. Hier ist mein Code:Android SearchRecentSuggestions - Vorschläge werden nicht angezeigt, wenn Sie in SearchView eingeben
Inhalt Anbieter
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); } }
Deklarieren Anbieter in Manifest
<provider android:name=".SearchHistoryProvider" android:authorities="com.mypackage.SearchHistoryProvider"> </provider>
durchsuchbare Konfiguration
<?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>
Speichern der Abfragen an den Content-Provider (in meinem durchsuchbare Aktivität)
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); } }
Alles funktioniert gut, außer die Vorschläge eigentlich nicht auftauchen (die Suche nach gleich aussieht, bevor ich hinzugefügt sie). Jede Hilfe würde sehr geschätzt werden!
Ah, ich löste das Problem. Es war ein Fehler in der Android-Manifestkonfiguration (der Name des Providers). Wie kann ich das Kopfgeld entfernen? –
@ Eng.Fouad wenn Sie das Kopfgeld für andere Frage setzen Sie können Bounty nicht entfernen! –
@ Eng.Fouad Moderator kann das Kopfgeld in extremen Fällen zurückerstatten, können Sie versuchen, und markieren Sie diesen Beitrag, wählen Sie "Andere" und verpfänden Sie Ihren Fall. Immer noch nicht zu spät. :) –