Ho implementato l'Android search widget
nell'app basata su . L'ho impostato per aprire la tastiera e focalizzare lo editText
quando si fa clic sull'icona di ricerca. Voglio impostare il pulsante Indietro (pulsante Su) per nascondere la tastiera. Ho cercato sul web lo R.id
del pulsante su e ho trovato questo android.R.id.home
. Così ho impostato per essere:Imposta funzionalità del pulsante di ritorno del widget di ricerca
@Override
public boolean onOptionsItemSelected(MenuItem item) {
...
case android.R.id.home:
hideKeyboard();
break;
...
}
ho il debug del codice e ho notato che cliccando sulle navigation bar
icona incendi il android.R.id.home
, ma colpendo il tasto up del widget di ricerca non ha nemmeno entrare nel onOptionsItemSelected(MenuItem item)
funzione. Inoltre ho provato questo:
searchView.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
hideKeyboard();
}
}
});
ma non ha funzionato.
Come posso nascondere la tastiera quando si preme il pulsante Indietro (su)?
Impostazione della visualizzazione di ricerca:
private void setSearchView(Menu menu) {
// Get the SearchView and set the searchable configuration
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView = (SearchView) menu.findItem(R.id.search).getActionView();
// Assumes current activity is the searchable activity
searchView.setSearchableInfo(searchManager
.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
public boolean onQueryTextChange(String newText) {
Home.getFilter().filter(newText);
return true;
}
public boolean onQueryTextSubmit(String query) {
return true;
}
};
searchView.setOnQueryTextListener(queryTextListener);
}
Hai controllato questa discussione? [SearchView's OnCloseListener non funziona] (http://stackoverflow.com/questions/9327826/searchviews-oncloselistener-doesnt-work/12975254#12975254). Seconda parte, quell'autore non dovrebbe basarsi su "android.R.id.home" è completamente corrent, però. –