2012-03-29 66 views
9

Estoy trabajando con una barra de acciones de búsqueda. Y tengo un problema que la barra de acción no reacciona con la actividad de búsqueda. ES DECIR, ingresé algo en el texto de búsqueda de la barra de acciones y luego hice clic en el envío, pero no pasó nada. El seguimiento de depuración muestra que el código de mi consulta no se ejecuta. Entonces me pregunto si hay algo mal en la configuración de búsqueda. ¡Bien, esta vez creo que expliqué el problema con claridad y no espero votos negativos sin palabras siquiera!android buscable no funciona

que siguieron las instrucciones del documento de desarrollador a partir de la manifest.xml, se añade el meta-datos en la actividad SearchResult:

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".GermanDictionaryActivity" 
     android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".SearchResultsActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.SEARCH" /> 
     </intent-filter> 
     <meta-data android:name="android.app.searchable" 
      android:resource="@xml/searchable" /> 
    </activity> 
</application> 

entonces inicializa el SearchView con mi menú:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.srhbar, menu); 

    // Get the SearchView and set the searchable configuration 
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
    mSrhView = (SearchView) menu.findItem(R.id.search).getActionView(); 
    mSrhView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
    mSrhView.setSubmitButtonEnabled(true); 

    return true; 
} 

Y el elemento de búsqueda en el menú:

<item android:id="@+id/search" 
    android:title="@string/srh_title" 
    android:showAsAction="collapseActionView|ifRoom" 
    android:actionViewClass="android.widget.SearchView" /> 

Cualquier respuesta relacionada es ap apreciado!

+0

donde U R llamando 'onSearchRequested()'? –

+0

ver este ejemplo puede ser útil: [SearchableDictionary] (http://android.toolib.net/resources/samples/SearchableDictionary/index.html) –

+2

Tengo el problema resuelto poco después de publicar esta pregunta, pero gracias de todos modos. Esto se debe a que no agregué los metadatos de búsqueda predeterminados en mi actividad principal. mi programa es un poco diferente de la muestra, mientras que el mío divide la función de búsqueda y la actividad principal en dos clases. Y la función onSearchRequested() hará que la barra de búsqueda de texto insertada como una vista independiente se muestre únicamente. – Hypeboyz

Respuesta

11

He resuelto el problema cambiando esta línea:

searchView.setSearchableInfo(searchManager.getSearchableInfo(new ComponentName(getApplicationContext(), SearchResultsActivity.class))); 
+1

¡Gracias a Dios por esta respuesta! Esto lo resolvió para mí. :-) – SherCoder

+0

¡Creo que esta respuesta y también esta pregunta me salvó! ¡Muchas gracias! Es tan bueno saber que siempre hay alguien con problemas similares al tuyo con los que puedes resolverlo. ¡Gracias una y otra vez! – Salivan