J'ai une activité de page de résultats de recherche qui a un widget SearchView dans la barre d'action. Dans onCreateOptionsMenu(), je le développe automatiquement et affiche la requête comme ceci :
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search_menu, menu);
MenuItem searchMenuItem = (MenuItem) menu.findItem(R.id.menu_search);
SearchView searchView = (SearchView)searchMenuItem.getActionView();
searchView.setOnQueryTextListener(this);
searchMenuItem.expandActionView(); // expand the search item
searchView.setQuery(query, false); // hide the keyboard
searchView.clearFocus();
return true;
}
Le bouton d'accueil est réglé comme ceci :
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
mais lorsque l'utilisateur appuie sur les boutons retour ou haut, la recherche se ferme d'abord et il faut alors appuyer une nouvelle fois pour fermer l'activité. Comment puis-je obliger l'activité à se terminer immédiatement ?