我有一个Activity,可以在我的应用中执行搜索。我将此Activity设置为硬件搜索按钮的处理程序。这一切都很有效。
如果用户导航到我的“活动”,请输入搜索查询,然后点击“搜索”按钮,然后通过以下方式关闭软键盘:
InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(etQuery.getWindowToken(), 0);
etQuery 是我的EditText字段。
但是,如果用户点击硬件搜索按钮,则显示搜索输入重叠,并且允许用户输入文本,他们这样做,点击“开始”我的活动获取输入并成功执行搜索。但是,软键盘仍然可见。
即使我打电话给上面的键盘解雇代码,它实际上也没有用。我假设因为启动软键盘的窗口[令牌]实际上并不是 etQuery EditText - 它是由硬件搜索工具启动的。因此,根据EditTexts标记要求它关闭无效。
此时,我并不在乎谁打开软键盘,我只是想让它关闭。
无论是谁打开软键盘,我如何强制关闭软键盘?
答案 0 :(得分:0)
我通过将以下属性添加到清单中的activity
来解决了这个问题:
机器人:windowSoftInputMode = “stateHidden”