我目前在我的应用的操作栏中有一个 SearchView
。当我单击搜索图标时,SearchView
会展开,键盘会按预期弹出。单击 SearchView
框中的“X”会按预期关闭 SearchView
。但是,当 SearchView
被激活并按下“返回”按钮时,我的应用程序将退出。这是正确的行为,但我现在要做的是捕获后退按钮按下并在 SearchView
为时关闭 SearchView
(不是我的应用程序)可见的。有没有办法在按下后退按钮时以编程方式调用 SearchView
OnCloseListener()
?例如,像这样:
// On a back button press, if we are currently searching,
// close the SearchView. Otherwise, invoke normal back button
// behavior.
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (isSearchViewVisible) {
SearchView searchView = (SearchView) menu.findItem(R.id.searchBox)
.getActionView();
// This method does not exist
searchView.invokeClose();
return true;
}
}
return super.onKeyDown(keyCode, event);
}
最佳答案
根据@MarcinOrlowski 的回答,您也可以使用:
@Override
public void onBackPressed() {
if (!searchView.isIconified()) {
searchView.setIconified(true);
} else {
super.onBackPressed();
}
}
关于android - 如何以编程方式关闭 SearchView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17506230/