我的主要活动有2个EditText(用户名和密码)和一个Button(登录)。我在按钮下方显示状态。
当用户点击按钮时,我需要隐藏键盘,否则键盘会出现在状态消息的前面。
因此,在登录按钮的点击事件中,我使用以下代码以编程方式关闭键盘:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
我相信上面的代码,如果用于切换键盘状态而不是专门用于关闭它。
现在问题是如果键盘已经折叠并且用户点击了按钮,它就会显示键盘。
我需要上面代码的替代方法,它将检查键盘是否关闭以及是否关闭以打开它。
答案 0 :(得分:1)
结帐以下代码
/**
* Hides the soft keyboard
*/
public void hideSoftKeyboard() {
if(getCurrentFocus()!=null) {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
}
/**
* Shows the soft keyboard
*/
public void showSoftKeyboard(View view) {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
view.requestFocus();
inputMethodManager.showSoftInput(view, 0);
}
答案 1 :(得分:0)
试试这个:
hideKeyboard(mButtonTest,context);
在视图中发送您的按钮:
{{1}}
答案 2 :(得分:0)
尝试:
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0);