Attualmente ho un SearchView nella barra delle azioni della mia app. Quando faccio clic sull'icona di ricerca, SearchView si espande e la tastiera si apre come previsto. Facendo clic su "X" nella casella SearchView si chiude SearchView come previsto. Tuttavia, quando SearchView è attivato e premo il pulsante "indietro", la mia app è chiusa. Questo è il comportamento corretto, ma quello che sto cercando di fare ora è quello di catturare il pulsante indietro e basta chiudere SearchView (non la mia app) quando SearchView è visibile. C'è un modo per richiamare SearchView OnCloseListener() a livello di codice su un pulsante indietro premere? Per esempio, qualcosa di simile:Come si chiude un SearchView al livello di programmazione?
// On a back button press, if we are currently searching,
// close the SearchView. Otherwise, invoke normal back button
// behavior.
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (isSearchViewVisible) {
SearchView searchView = (SearchView) menu.findItem(R.id.searchBox)
.getActionView();
// This method does not exist
searchView.invokeClose();
return true;
}
}
return super.onKeyDown(keyCode, event);
}
https://stackoverflow.com/a/46930606/1308990 – oiyio