我在ActionBar中有一个searchView。我想在用户完成输入时关闭键盘。我曾在上搜索查看以下queryTextListener如何在Android SearchView中关闭键盘?
final SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String newText) {
// Do something
return true;
}
@Override
public boolean onQueryTextSubmit(String query) {
showProgress();
// Do stuff, make async call
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
return true;
}
};
基于类似的问题,下面的代码应该驳回键盘,但它并没有在这种情况下工作:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
我也试过:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(searchView.getWindowToken(), 0);
两者都不工作。我不确定这是否是Honeycomb特定的问题,或者它是否与ActionBar中的searchView相关,或者两者都有关系。有没有人得到这个工作,或知道为什么它不工作?
是'query''在''onCreateOptionsMenu''定义其中'? –
..这是在别处定义的查询字符串。我会编辑它。该行也不是必需的,只有在您想要预先填充查询时,第二个参数(false)才会停止运行查询。 – bkurzius
非常感谢! searchView.clearFocus()是我到目前为止丢失的部分 – satyadeepk