Sto cercando di aggiungere il supporto per SearchView
nell'ActionBar di Android 3.0+, ma non riesco a farlo OnCloseListener
funzionare.
Ecco il mio codice:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
searchView = (SearchView) menu.findItem(R.id.search_textbox).getActionView();
searchView.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
searchLibrary(newText);
return false;
}
@Override
public boolean onQueryTextSubmit(String query) { return false; }
});
searchView.setOnCloseListener(new OnCloseListener() {
@Override
public boolean onClose() {
System.out.println("Testing. 1, 2, 3...");
return false;
}
});
return true;
}
La ricerca funziona alla grande e tutti funzionano tranne il OnCloseListener
. Non viene stampato nulla su Logcat. Ecco il Logcat per quando premo il pulsante "Chiudi":
02-17 13:01:52.914: I/TextType(446): TextType = 0x0
02-17 13:01:57.344: I/TextType(446): TextType = 0x0
02-17 13:02:02.944: I/TextType(446): TextType = 0x0
Ho esaminato la documentazione e gli esempi, ma nulla sembrava cambiarli. Lo sto eseguendo su un Asus Transformer Prime e un Galaxy Nexus, entrambi su Ice Cream Sandwich. Qualche idea?
Aggiornare:
Sì System.out.println()
, funziona. Ecco la prova:
@Override
public boolean onQueryTextChange(String newText) {
System.out.println(newText + "hello");
searchLibrary(newText);
return false;
}
Risultati in questo Logcat:
02-17 13:04:20.094: I/System.out(21152): hello
02-17 13:04:24.914: I/System.out(21152): thello
02-17 13:04:25.394: I/System.out(21152): tehello
02-17 13:04:25.784: I/System.out(21152): teshello
02-17 13:04:26.064: I/System.out(21152): testhello
showAsAction
è impostato su always
. La casella di ricerca ha un pulsante di chiusura proprio ma se è impostata su ifRoom | collapseActionView
si espande sulla barra delle azioni.