如何获取 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) 所需的令牌?的主要内容,如果未能解决你的问题,请参考以下文章