Android 隐藏键盘不起作用 - 无法隐藏软键盘

新手上路,请多包涵

我正在 Droid Incredible 上开发(并且也在 1.5 AVD 模拟器上进行了测试),我的选项卡小部件中的一个选项卡由一个列表视图和一行带有 EditText 和一个发送按钮(用于聊天功能)组成.单击“发送”后,我使用以下方法关闭软键盘,但它不起作用。这与我在其他地方发现的人们认为正确的代码相同。

看到我遗漏了什么吗?

 // in Button's onClick():
EditText chatTextBox = (EditText) findViewById(R.id.chat_entry);
// Handle button click ...
chatTextBox.setText("");

InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(chatTextBox.getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);

我也尝试将标志更改为 0。没有运气。有谁知道怎么回事??

\*\*\*\*编辑\*\*\*\* 刚刚意识到我最初使用的是 hideSoftInputFromInputMethod() 而不是 hideSoftInputFromWindow() 。改变它并没有让它工作……

原文由 stormin986 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 858
2 个回答

将 HIDE_IMPLICIT_ONLY 更改为 0 就可以了(在我从 — 更改为 hideSoftInputFromWindow() hideSoftInputFromInputMethod() )。

但是我不确定为什么 HIDE_IMPLICIT_ONLY 不起作用,因为我没有通过长按菜单明确打开键盘。

原文由 stormin986 发布,翻译遵循 CC BY-SA 2.5 许可协议

阻止它在 AndroidManifest.xml 文件中活动的另一种选择

android:windowSoftInputMode=“stateAlwaysHidden” - 此方法将在加载活动时阻止加载/显示键盘。但是,当您单击可编辑组件(如 edittext)时,键盘将打开。非常适合我的要求。

 <activity
            android:name=".Name"
            android:label="@string/app_name"
            android:windowSoftInputMode="stateAlwaysHidden">

原文由 Joseph Selvaraj 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题