安卓:按钮点击后隐藏键盘

2022-09-01 04:43:15

我需要在按钮点击后隐藏Android键盘。

我已经看到许多如何做到这一点的例子,但是,它们似乎都使用特定的editText对象。

例如:

InputMethodManager imm = (InputMethodManager)getSystemService(
      Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);

我的问题是我正在动态构建屏幕,因此可能存在mane编辑文本字段。有没有办法隐藏键盘,而不必指定我隐藏它的editText对象。


答案 1

您可以改为将其设置为布局,即:

LinearLayout mainLayout;

// Get your layout set up, this is just an example
mainLayout = (LinearLayout)findViewById(R.id.myLinearLayout);

// Then just use the following:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mainLayout.getWindowToken(), 0);

这是一个示例,假设无论在其上放置多少个对象(或其他对象),都将创建布局。EditText

编辑:另外,我发现非常有用的事情是确保在活动首次启动时隐藏键盘(即:如果a是第一个重点)。为此,我将其放入活动方法中:EditTextonCreate()

 this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

答案 2

不要忘记使用尝试捕获博客,因为万一当你的键盘没有打开,如果你使用键键盘隐藏代码应用程序将崩溃

try {
    InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
} catch (Exception e) {
    // TODO: handle exception
}

推荐