【发布时间】:2011-03-03 04:30:43
【问题描述】:
我有一个在我的应用程序中执行搜索的 Activity。我将此 Activity 设置为硬件搜索按钮的处理程序。这一切都很好。
如果用户导航到我的活动,输入搜索查询,然后点击“搜索”按钮,然后我通过以下方式关闭软键盘:
InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(etQuery.getWindowToken(), 0);
etQuery 是我的 EditText 字段。
但是,如果用户点击硬件搜索按钮,则会显示搜索输入重叠,并且允许用户输入文本,他们这样做,在单击“Go”时,我的 Activity 获取输入并成功执行搜索.但是,软键盘仍然可见。
即使我调用了上面的键盘关闭代码,它实际上也不起作用。我假设因为启动软键盘的窗口 [token] 实际上不是 etQuery EditText - 它是由硬件搜索工具启动的。因此,根据 EditTexts 令牌要求它关闭无效。
此时,我并不在乎是谁打开了软键盘,我只想让它关闭。
无论是谁打开软键盘,如何强制关闭它?
【问题讨论】: