Для меня следующие работы:
В моей деятельности у меня есть переменная-член
private SearchView mSearchView;
В onCreateOptionsMenu()
Я установил эту переменную так:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.library, menu);
mSearchView = (SearchView)menu.findItem(R.id.miSearch).getActionView();
mSearchView.setOnQueryTextListener(this);
return true;
}
В QueryTextListener
наконец я делаю это:
mSearchView.setQuery("", false);
mSearchView.setIconified(true);
Я посмотрел исходный код SearchView, и если вы не сбросите текст запроса в пустую строку, SearchView просто сделает это и не удалит клавиатуру. На самом деле, углубляясь в исходный код достаточно глубоко, все сводится к тому же, предположил Юку, но все же мне больше нравится мое решение, так как мне не нужно возиться с этими низкоуровневыми вещами.