我正在使用SearchView从蓝牙条形码阅读器输入数字。
SearchView的重点如下:
svActListaPedidosFragmento.setFocusable(true);
svActListaPedidosFragmento.setIconified(false);
问题是当SearchView聚焦时,会出现软件键盘,而我想将其隐藏。
隐藏键盘的方法我很了解
问题是我找不到告诉我键盘已经出现的事件。
在上一个线程中,有人告诉我可以将OnClickListener事件用于SearchView,但是我发现此事件在显示键盘之前发生。
感谢任何评论或建议。
答案 0 :(得分:1)
我当前正在创建一个应用程序,并且有一个功能可以在键盘专注于EditText
时隐藏键盘。
在这里:
static void editTextHideKeyboard(Context context, EditText editText) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(LoginActivity.INPUT_METHOD_SERVICE);
if (imm!=null)imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
希望这会有所帮助!
编辑:我发现我发布的代码不是我的,我只是从另一个StackOverflow帖子中复制粘贴了!这是the original post,所有功劳归功于原始海报!
答案 1 :(得分:1)
只需使用它并传递您的editText和布尔型参数来显示或键盘
private void inputModeChange(final EditText editText, final boolean showKeyboard) {
editText.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
if (showKeyboard) {
InputMethodManager keyboard = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
keyboard.showSoftInput(editText, 0);
} else if (showKeyboard == false) {
InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editText.getWindowToken(), 0);
}
}
}, 50);
}
希望它会有所帮助。