J'essaie d'ajouter la prise en charge de la SearchView
barre d'action Android 3.0+, mais je ne parviens pas à faire OnCloseListener
fonctionner le.
Voici mon code:
@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 recherche fonctionne très bien et tout fonctionne à l'exception du OnCloseListener
. Rien n'est imprimé sur Logcat. Voici le Logcat lorsque j'appuie sur le bouton "Fermer":
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
J'ai parcouru la documentation et les exemples, mais rien n'a semblé le changer. Je l'exécute sur un Asus Transformer Prime et un Galaxy Nexus, tous deux sur Ice Cream Sandwich. Des idées?
Mettre à jour:
Oui, System.out.println()
ça marche. Voici la preuve:
@Override
public boolean onQueryTextChange(String newText) {
System.out.println(newText + "hello");
searchLibrary(newText);
return false;
}
Résultats dans ce 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
est réglé sur always
. La zone de recherche a son propre bouton de fermeture, mais si elle est définie, ifRoom | collapseActionView
elle se développe dans la barre d'action.