Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Configuaration Searchable que devuelve Null para el SearchView

He creado una interfaz de búsqueda, pero no puedo conectar el SearchView en el ActionBar a mi archivo de configuración de búsqueda. Cuando intento onCreateOptionsMenu en mi método SearchManager.getSearchableInfo(getComponentName() devuelve null. ¿Podría alguien ayudarme con esto?

Settings.onCreateOptionsMenu (Menú)

 @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.activity_main, menu); SearchManager sm = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView sv = (SearchView) menu.findItem(R.id.menu_search).getActionView(); SearchableInfo info = sm.getSearchableInfo(getComponentName()); //This variable is returned as null sv.setSearchableInfo(info); sv.setIconifiedByDefault(false); sv.setSubmitButtonEnabled(true); return true; } 

Configuración de la actividad en AndroidManifest.xml

 <activity android:name=".Settings" android:label="@string/app_name" android:screenOrientation="portrait" > <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> 

Actividad de búsqueda en AndroidManifest.xml

  <activity android:name=".ImageSearch" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.SEARCH" /> </intent-filter> </activity> 

Tengo el encabezado <?xml version="1.0" encoding="utf-8"?> En mi archivo xml de menú y he intentado limpiar el proyecto. Ninguno de ellos parece hacer el truco.

3 Solutions collect form web for “Configuaration Searchable que devuelve Null para el SearchView”

OK no importa. Después de algunas investigaciones descubrí que la documentación de Android para crear una interfaz de búsqueda no está completa: algunas cosas quedaron fuera como

1) Ninguna cadena debe ser hardcoded en la conifguración de búsqueda

2) Debo tener este código en la <activity> que hace la búsqueda:

  <meta-data android:name="android.app.searchable" android:resource="@xml/your search configuration file's name" /> 

3) También debería tener este código en la <activity> donde quiero que el SearchView aparezca en el ActionBar

  <meta-data android:name="android.app.default_searchable" android:value=".ActivityWhichCarriesOutTheSearch" /> 

Para el bien de la terminación: Aquí está mi archivo de manifiesto que trabaja:

 <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="false" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> <meta-data android:name="android.app.default_searchable" android:value=".SearchActivity" /> </activity> <activity android:name=".SearchActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.SEARCH" /> </intent-filter> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable"/> </activity> </application> 

Si extiendes ActionBarActivity en tu mainactivtity, entonces en tu menu_item tendrás que encastrar tu búsqueda en

 "android.support.v7.widget.SearchView" 

También tengo el mismo error usando esto i resuelto: gracias ….

 <item android:id="@+id/search" android:title="Search for coupons,deals,stores,etc....." android:icon="@drawable/ic_search" app:showAsAction="always" app:actionViewClass="android.support.v7.widget.SearchView" /> 

Uso android: launchMode = "singleTop" propiedad cuando no tengo la actividad que realiza la búsqueda. Y los metadatos tienen este aspecto:

 <activity android:name=".Activities.Account" android:label="Личный кабинет абонента" android:screenOrientation="portrait" android:launchMode="singleTop" > <meta-data android:name="android.app.searchable" android:resource="@xml/searchable"/> <intent-filter> <action android:name="android.intent.action.SEARCH" /> </intent-filter> </activity> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.