2017-08-30 4 views
0

Ich mache eine Suchleiste, aber ich habe ein Problem gefunden, denn wenn ich den Code am Ende von MainActivity anlege, werden keine Optionen geladen.Meine App lädt keine Werkzeugleistenoptionen

public boolean onCreateOptionsMenu(Menu menu) { 
getMenuInflater().inflate(R.menu.main_menu, menu); 
    return super.onCreateOptionsMenu(menu); 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){ 

     SearchManager manager = (SearchManager) getSystemService (Context.SEARCH_SERVICE); 
     SearchView search = (SearchView) menu.findItem(R.id.action_search).getActionView(); 
     search.setSearchableInfo(manager.getSearchableInfo(getComponentName())); 
     search.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
      @Override 
      public boolean onQueryTextSubmit(String query) { 
       return false; 
      } 

      @Override 
      public boolean onQueryTextChange(String query) { 
       return false; 
      } 
     }); 
}} 

Was soll ich tun? Habe ich etwas falsch gemacht?

Vielen Dank im Voraus

+0

Ich bin mir nicht sicher, wie Ihr Code sogar kompiliert, nachdem Sie etwas nach return statement gestellt haben. Gibt es keinen Fehler, der eine unerreichbare Aussage sagt? –

Antwort

1

Ihre Logik ist nach der Return-Anweisung daher nie erreicht. Versuchen Sie folgendes:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main_menu, menu); 

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){ 

     SearchManager manager = (SearchManager) getSystemService (Context.SEARCH_SERVICE); 
     SearchView search = (SearchView) menu.findItem(R.id.action_search).getActionView(); 
     search.setSearchableInfo(manager.getSearchableInfo(getComponentName())); 
     search.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
      @Override 
      public boolean onQueryTextSubmit(String query) { 
       return false; 
      } 

      @Override 
      public boolean onQueryTextChange(String query) { 
       return false; 
      } 
     }); 
    } 
    return super.onCreateOptionsMenu(menu); 
} 
+0

das funktionierte aber ... Es filtert nichts ... –

+1

deshalb müssen Sie etwas in onQueryTextChange tun – Frank

+0

gut, jetzt, dass dieser Teil des Codes funktioniert, wie Frank sagte, müssen Sie entweder selbst einige Filter durchführen innerhalb der zwei Callbacks, oder stellen Sie sicher, dass Sie Ihre Suchoberfläche korrekt konfiguriert haben (da Sie sich darauf verlassen, um Ihre Suche durchzuführen) leider habe ich nicht genug Informationen darüber, was Sie mit dieser Suche erreichen möchten, noch über Ihre aktuelle Konfiguration der Suchoberfläche, um zu verstehen, warum sie nicht das tut, was Sie tun müssen. – cjurjiu

1
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){ 

Das nie erreicht wird, ist Ihre return-Anweisung davor. Der Rest sieht gut aus.

+0

Danke aber jetzt searchManager gibt mir Fehler "unerreichbare Aussage". was soll ich machen? danke –