如何获取 hideSoftInputFromInputMethod(token, flags) 所需的令牌?

Posted

技术标签:

【中文标题】如何获取 hideSoftInputFromInputMethod(token, flags) 所需的令牌?【英文标题】:How to get token needed for hideSoftInputFromInputMethod(token, flags)? 【发布时间】:2013-04-11 17:21:26 【问题描述】:

所以我正在尝试制作 android 输入法。我需要能够从我的 IME 本身隐藏 IME。 到目前为止,我只看到了有关如何从活动中显示\隐藏 IME 的示例,但我需要从 IME 中进行操作。 我发现了InputMethodManager.hideSoftInputFromInputMethod(token,flags),但它需要令牌,我不知道如何获得它。 getCurrentInputBinding().getConnectionToken() 不起作用 - 它使应用程序崩溃。有任何想法吗?

【问题讨论】:

【参考方案1】:

据推测,根据其他地方对这个问题的回答(我自己仍在尝试找出一种始终如一的工作方法),您需要的令牌来自 yourTextView.getWindowToken()。

但是,这对我不起作用,我见过很多人有同样的抱怨。

[编辑] 使用上面指定的令牌,我用 hideSoftInputFromWindow 而不是 hideSoftInputFromInputMethod 隐藏键盘的运气更好。虽然由于我一开始并没有掌握这些功能之间的区别,但我可能无法理解您的实际问题。对不起! [/编辑]

【讨论】:

我认为他正在尝试使用条形码阅读器填充 EditText,因此他不希望显示软键盘。我尝试了很多解决方案,主要问题是 getWindowToken() 在 EditText 中为空。我会按照您的建议尝试使用 hideSoftInputFromWindow() @Windgate 这个问题有八年半了。查看日期,当我回答它时它已经过时了......考虑到Android可以从一个版本到另一个版本有多少变化,我绝对不希望这里的建议再有意义了。到目前为止,可能有一种不同的和/或更好的方法来完成这一切。 感谢老兄的澄清,但今天的问题仍然是一样的,所有相关的帖子都是基于 hideSoftInputFromWindow() 和 hideSoftInputFromInputMethod() 的相关代码捆绑,它们都不起作用,方式Android 让你隐藏/显示键盘真是一团糟

以上是关于如何获取 hideSoftInputFromInputMethod(token, flags) 所需的令牌?的主要内容,如果未能解决你的问题,请参考以下文章

JS如何获取OBJECT的值

js如何获取某一个元素,如果获取不到就继续获取,直到获取到后停止获取?

Groovy如何获取访问地址

js如何获取时间

js如何获取地址栏加密参数

webbrowser如何获取cookie中的sessionid