2014-07-09 17 views

risposta

8

È necessario estendere OnQueryTextListener, collegare l'ascoltatore e implementare onQueryTextSubmit.

Esempio:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 
    searchView = (SearchView) menu.findItem(R.id.mActionSearch).getActionView(); 
    searchView.setOnQueryTextListener(this); 

    return true; 
} 

@Override 
public boolean onQueryTextSubmit(String query) { 
    //Do something here 
    return false; 
} 

@Override 
public boolean onQueryTextChange(String newText) { 
    return false; 
} 
+0

Grazie mille, ha funzionato;) –

+1

grandi, vuoi impostare la mia risposta come suppliche corrette. –

+0

StackOverflow non mi permette di accettare la tua risposta fino a 5 minuti passati il ​​mio amico;) –

0

Pozzo Apps risposta è giusta

ma per api sotto 11 e la biblioteca compat si può usare qualcosa di simile:

MenuItem search_menu=(MenuItem)menu.findItem(R.id.action_search); 
    SearchView searchView =(SearchView)MenuItemCompat.getActionView(search_menu); 
0

È inoltre possibile applicare setOnKeyListener su visualizza come nel seguente esempio:

searchview.setOnKeyListener(new View.OnKeyListener(
{ 
    Public boolean onKey(View v, int keyCode, KeyEvent event) 
    { 
     if(event.getAction() == KeyEvent.ACTION_DOWN) 
     { 
      switch(keyCode) 
      { 
       Case KeyEvent.KECODE_ENTER: 
         // Apply action which you want on search key press on keypad 
         return true; 
       default: 
         break; 
      } 
      } return false; 
     } 
}); 
0

È necessario aggiungere nuovo OnQueryTextListener e implementare onQueryTextSubmit. Anche questo funziona in un frammento.

Esempio:

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.main_search, menu); 

    SearchView sv = (SearchView) menu.findItem(R.id.action_search).getActionView(); 
    sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextSubmit(String query) { 
      //Do something here 
      Toast.makeText(getActivity(), "Search: " + query, Toast.LENGTH_SHORT).show(); 
      return false; 
     } 

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

    super.onCreateOptionsMenu(menu,inflater); 
} 
Problemi correlati