2012-03-29 19 views
9

Pracuję z paskiem akcji, który można przeszukiwać. I mam problem, że pasek akcji nie reaguje na działanie z możliwością wyszukiwania. TO JEST, wprowadzam coś w wyszukiwanym textedit paska akcji, a następnie kliknąłem na zgłoszenie, ale nic się nie stało. Śledzenie debugowania pokazuje, że kod w moich wynikach wyszukiwania nigdy nie jest wykonywany. Zastanawiam się, czy coś jest nie tak w konfiguracji z możliwością wyszukiwania. Cóż, tym razem myślę, że wyjaśniłem problem wyraźnie i nie oczekuję żadnych negatywnych głosów bez słów nawet pluje!Funkcja wyszukiwania z Androidem nie działa

I przestrzegać instrukcji dokumentu dewelopera rozpoczynający się manifest.xml, meta-dane są dodawane w działalności wynik wyszukiwania:

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

potem zainicjowaniu searchview z moim 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; 
} 

I przeszukiwać pozycja w menu:

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

Każda odpowiedź związana jest ap doceniane!

+0

gdzie U R wzywając 'onSearchRequested()'? –

+0

Zobacz przykład może być pomocny: [SearchableDictionary] (http://android.toolib.net/resources/samples/SearchableDictionary/index.html) –

+2

Mam problem rozwiązany krótko po opublikowaniu tego pytania, ale dziękuję i tak. To dlatego, że nie dodałem domyślnych wyszukiwalnych metadanych w mojej głównej działalności. mój program trochę różni się od próbki, podczas gdy mój podzielił funkcję wyszukiwania i główne działanie na dwie klasy. Funkcja onSearchRequested() sprawi, że wyszukiwarka textedit z wbudowanym barem zostanie wyświetlona jako niezależny widok. – Hypeboyz

Odpowiedz

11

I rozwiązać problem poprzez zmianę tej linii:

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

Och, dzięki Bogu za tę odpowiedź. To rozwiązało to dla mnie. :-) – SherCoder

+0

Myślę, że ta odpowiedź, a także to pytanie też mnie uratowało! Wielkie dzięki! Dobrze jest wiedzieć, że zawsze jest ktoś z podobnymi problemami, jak twój, z którym możesz go rozwiązać. Dziękuję raz za razem! – Salivan

Powiązane problemy