2012-08-16 11 views
21

estoy desarrollando interfaz widget de búsqueda basado en tutorial oficial: http://developer.android.com/guide/topics/search/search-dialog.htmlwidget de búsqueda en la barra de acciones no desencadena mi actividad de búsqueda

Problema: Mi SearchableActivity no se disparará cuando entro en mi consulta y pulse Ok/entrar

Manifiesto por SearchableActivity:

<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> 

principal método de la actividad del ciclo de vida que añade iconos de 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 aparecen en la barra de acción y puedo insertar datos, pero al presionar el botón OK/Enter no me llevará a la SearchableActivity (doesn' t dispara onCreate of SearchableActivity).

¿Me falta algo o es defectuoso el tutorial oficial?

Respuesta

58

Problema resuelto: el tutorial parece haber perdido una parte importante: <meta-data android:name="android.app.default_searchable" android:value=".MySearchActivityName" /> tiene que agregarse dentro de <application> etiquetas en manifiesto para que el widget de búsqueda funcione correctamente.

EDITAR - también una pista para resolver un problema cuando la búsqueda actionbar no se desencadena sobre el desplazamiento de datos (no hay error dado en absoluto y documentaciones aún no tiene una palabra acerca de esta limitación): en androide archivo searchable.xml: sugerencia y android: atributos de etiqueta DEBE ser referencias a cadenas en strings.xml. Source

+0

debe aceptar su propia respuesta, entonces –

+0

No puedo por el momento debido a algún tipo de límite (mañana podré aceptarlo). –

+3

Tuve un problema similar.Puede poner el en la actividad principal y seguirá funcionando. Solo un FYI. – dbrown0708

0

Debe anular onOptionsItemSelected y probablemente onSearchRequested en su actividad.

+0

Cambié mi respuesta. –

+1

Estoy usando [Search Widget] (http://developer.android.com/guide/topics/search/search-dialog.html#UsingSearchWidget) not [Search Dialog] (http://developer.android.com/ guide/topics/search/search-dialog.html # InvokingTheSearchDialog) –

+0

muéstranos tu 'onOptionsItemSelected' –

0

Si el archivo "xml/searchable.xml" no está formateado correctamente (cosas como la etiqueta "buscable" no está en minúsculas), no se muestra ningún mensaje de error durante la ejecución y no se obtiene "SearchableActivity" invocado.

Cuestiones relacionadas