单击按钮后,我需要隐藏android键盘。

我已经看到了许多有关如何执行此操作的示例,但是它们似乎都使用了特定的editText对象。

例如

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

我的问题是我正在动态构建屏幕,因此可能会有鬃毛编辑文本字段。有没有一种方法可以隐藏键盘,而无需我指定要为其隐藏的editText对象。

最佳答案

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

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对象(或其他对象),都将创建布局。

编辑:另外,我发现非常有用的一点是确保在 Activity 首次启动时隐藏键盘(即:如果EditText是首先关注的事情)。为此,我将其放在Activity的onCreate()方法中:
 this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

07-24 09:45
查看更多