2012-03-29 29 views
9

Sto lavorando con una barra delle azioni ricercabile. E devo un problema che la barra delle azioni non reagisce con l'attività di ricerca. CIOÈ, inserisco qualcosa nella textedit ricercabile della barra delle azioni, quindi ho fatto clic su Invia ma non è successo nulla. Il tracciamento di debug mostra che il codice nella mia ricerca non viene mai eseguito. Quindi mi chiedo se c'è qualcosa di sbagliato nella configurazione ricercabile. Bene, questa volta penso di aver spiegato chiaramente il problema e non mi aspetto nessun voto negativo senza parole nemmeno sputi!Android ricercabile non funziona

Ho seguito le istruzioni del documento dello sviluppatore a cominciare dal manifest.xml, il meta-dati vengono aggiunti nell'attività 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> 

poi ho inizializzato il SearchView con il mio menu:

@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; 
} 

E la voce ricercabile nel menu:

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

Qualsiasi risposta relativo è ap preciated!

+0

dove u r chiamando 'onSearchRequested()'? –

+0

vedere questo esempio può essere utile: [SearchableDictionary] (http://android.toolib.net/resources/samples/SearchableDictionary/index.html) –

+2

Devo risolvere il problema poco dopo aver postato questa domanda, ma grazie comunque. Questo perché non ho aggiunto metadati di ricerca predefiniti nella mia attività principale. il mio programma è leggermente diverso dal campione mentre il mio divide la funzione di ricerca e l'attività principale in due classi. E, la funzione onSearchRequested() renderà la textedit ricercabile incastonata dalla barra come una visualizzazione indipendente mostrata unicamente. – Hypeboyz

risposta

11

ho risolto il problema modificando questa linea:

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

Oh grazie a Dio per questa risposta. Questo l'ha risolto per me. :-) – SherCoder

+0

Immagino che questa risposta e anche questa domanda mi abbiano salvato! Molte grazie! È così bello sapere che c'è sempre qualcuno con problemi simili come il tuo con cui puoi risolverlo. Grazie ancora e ancora! – Salivan