How to dismiss keyboard in Android SearchView?
I was trying to do something similar. I needed to launch the SearchActivity
from another Activity
and have the search term appear on the opened search field when it loaded. I tried all the approaches above but finally (similar to Ridcully's answer above) I set a variable to SearchView
in onCreateOptionsMenu()
and then in onQueryTextSubmit()
called clearFocus()
on the SearchView
when the user submitted a new search:
private SearchView searchView;@Overridepublic boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.search_menu, menu); searchView = (SearchView) menu.findItem(R.id.menu_search) .getActionView(); // set the reference to the searchView searchView.setOnQueryTextListener(this); searchMenuItem = (MenuItem) menu.findItem(R.id.menu_search); searchMenuItem.expandActionView(); // expand the search action item automatically searchView.setQuery("<put your search term here>", false); // fill in the search term by default searchView.clearFocus(); // close the keyboard on load return true;}@Overridepublic boolean onQueryTextSubmit(String query) { performNewSearch(query); searchView.clearFocus(); return true;}
Simple, straight to the point and clean:
@Override public boolean onQueryTextSubmit(String query) { // your search methods searchView.clearFocus(); return true; }
just return false on onQueryTextSubmit just like below
@Overridepublic boolean onQueryTextSubmit(String s) { return false;}