2012-09-27 11 views
6

Ich verwende eine searchView und versuchen, einige Daten zu übergeben, wenn jemand eine Suche aufruft. Also überging ich die onSearchReqested Methode. Das Problem ist, diese Methode wird nicht aufgerufen, wenn jemand SearchView eintippt und die Lupe auf der Tastatur drückt. Stattdessen wird die Ergebnisaktivität gestartet.So rufen Sie onSearchRequested, wenn Sie Lupe drücken

Wie kann ich die onSearchRequested Methode vor dem Starten der Ergebnisaktivität aufrufen, wenn jemand die Lupe drückt.

ich versuchte diese zwei, aber es hat nicht funktioniert.

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.FLAG_EDITOR_ACTION) { 
     onSearchRequested(); 
     return false; 
    } 
    return false; 
} 

Hinzufügen eines Zuhörers auf die Suche auch nicht

funktionierten
searchView.setOnSearchClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 
     onSearchRequested(); 

    } 
}); 

Vielen Dank im Voraus für die Hilfe.

Antwort

9

setOnQueryTextListerner arbeitete schließlich

searchView.setOnQueryTextListener(new OnQueryTextListener() { 

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

    @Override 
    public boolean onQueryTextChange(String newText) { 
     // TODO Auto-generated method stub 
     return false; 
    } 
});