Android:按下按钮时隐藏键盘

时间:2016-09-22 18:21:37

标签: android

我的主要活动有2个EditText(用户名和密码)和一个Button(登录)。我在按钮下方显示状态。

当用户点击按钮时,我需要隐藏键盘,否则键盘会出现在状态消息的前面。

因此,在登录按钮的点击事件中,我使用以下代码以编程方式关闭键盘:

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);

我相信上面的代码,如果用于切换键盘状态而不是专门用于关闭它。

现在问题是如果键盘已经折叠并且用户点击了按钮,它就会显示键盘。

我需要上面代码的替代方法,它将检查键盘是否关闭以及是否关闭以打开它。

3 个答案:

答案 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);