Ich versuche, Vorschläge für SearchView zu bekommen. Ich habe einen benutzerdefinierten Inhaltsanbieter dafür implementiert. Ich habe auch auf diese link verwiesen, um Vorschläge für das SearchView zu implementieren. Das Problem, das ich bin vor, ich null Wert erhalten auf searchManager.getSearchableInfo(getComponentName())
Android: getSearchableInfo (getComponentName()) gibt null zurück?
Hier sind die Schnipsel:
AndroidManifest.xml
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<provider android:name=".SearchProvider"
android:enabled="true"
android:authorities="com.example.currentlocationmapdemo"
android:grantUriPermissions="true"
android:exported="true">
<grant-uri-permission android:pathPattern="*" />
</provider>
<uses-library android:name="com.google.android.maps" />
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
searchable.xml
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="label"
android:hint="hint"
android:searchSuggestAuthority="com.example.currentlocationmapdemo"
android:searchSuggestSelection=" ? ">
MainActivity
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.searchview_in_menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
mSearchView = (SearchView) searchItem.getActionView();
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchableInfo info = searchManager.getSearchableInfo(getComponentName()); // null returned
mSearchView.setSearchableInfo(info);
return true;
}
Als eine Anmerkung, kann ich es derzeit nur funktionieren, wenn der Intent-Filter in der aktuellen Aktivität ist. Es ist ziemlich ärgerlich, weil ich möchte, dass es zu einer anderen Aktivität geht, um Suchergebnisse anzuzeigen. Wenn Sie wissen, was damit los ist, wäre ich dankbar zu hören. – Erhannis
Verlorene Stunden dabei. Es war der Absichtsfilter, der fehlte. –