android - quitar - El widget de búsqueda en la barra de acción no activa mi actividad de búsqueda
widget barra busqueda google android (3)
Estoy desarrollando una interfaz de búsqueda basada en el tutorial oficial: http://developer.android.com/guide/topics/search/search-dialog.html
Problema: Mi SearchableActivity no se activa cuando ingreso mi consulta y presiono Ok / enter.
Manifiesto para la actividad de búsqueda:
<activity android:name="SearchableActivity" android:launchMode="singleTop" >
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
xml / searchable.xml
<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:hint="Search" android:label="@string/app_name" >
</searchable>
Método del ciclo de vida de la actividad principal que agrega iconos a la barra de acción (funciona bien):
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
// Get the SearchView and set the searchable configuration
SearchManager searchManager = (SearchManager)getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
// Do not iconify the widget;expand it by default
searchView.setIconifiedByDefault(false);
return true;
}
SearchableActivity.java
public class SearchableActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.d("MY", "search activity triggered");
}
}
Nota: el widget de búsqueda aparece en la barra de acción y puedo insertar datos, pero al presionar Aceptar / Entrar no me lleva a la Actividad de búsqueda (no activa la Creación de la Actividad de búsqueda).
¿Me estoy perdiendo algo o el tutorial oficial es defectuoso?
Debe anular onOptionsItemSelected
y probablemente onSearchRequested
en su actividad.
Problema resuelto: el tutorial parece que falta una parte importante: <meta-data android:name="android.app.default_searchable" android:value=".MySearchActivityName" />
debe agregarse dentro de las etiquetas <application>
en el manifiesto para obtener El widget de búsqueda funciona correctamente.
EDITAR - También es una sugerencia para resolver un problema cuando la búsqueda de la barra de acción no se activa en la publicación de datos (ningún error dado y la documentación no tiene una palabra sobre esta limitación): en el archivo searchable.xml android: hint and android: label DEBEN ser referencias a cadenas en strings.xml. Source
Si el archivo "xml / searchable.xml" no tiene el formato correcto (cosas como la etiqueta "de búsqueda" no están en minúsculas), no se devuelve ningún mensaje de error durante la ejecución y no se invoca la "Actividad de búsqueda".