如何动态更新编辑器操作按钮显示?

a2r*_*nus 28 keyboard android action key

我的问题是:如何动态更新软键盘的动作按钮的显示?

另一篇文章似乎是关于在显示键盘之前更改编辑器操作:Android:无法计算如何使用setImeActionLabel.我想在显示时更改软键盘操作按钮.

我已经部分成功了: - 我可以通过使用:editText.setImeOptions(EditorInfo.IME_ACTION_GO)更改操作; - 我也可以使用以下方法重绘键盘:InputMethodManager.restartInput(editText); 我这样做是使用TextWatcher.afterTextChanged. - 但是,我有一个问题.如果我按一个键,键盘上会显示已按下哪个键.但是当我调用restartInput(...)时,这也会隐藏显示已按下哪个键的视图.这对我来说似乎是正常的行为,但我需要一种解决方法.

扩展EditText并覆盖onKeyUp并不是一个好主意,请参阅:https://groups.google.com/forum/?fromgroups#!topic / android-Developers/RIxGfx5qOjM .

KeyboardView类正是我需要的(invalidateKey),但我认为只有在创建自己的输入方法时才能访问它.

还有其他人有更好的想法吗?

Mah*_*raa 1

当您描述您想做什么时,请尝试更具体...我需要多次阅读您的帖子才能理解您的请求..

因此,您想要做的是如何对键盘上按下的任何键做出反应,并在键盘上的操作键中显示有关它的信息。如果那不是您的目标,请解释更多...

如果是,那么我想您需要使用附加的 EditText (不可见)让我们调用 et0。在编辑文本中完成插入字母或通过 ontextchanged 定义的任何模式后,将焦点更改为 et0.. 这样您就可以更改 actionKey.. 然后将焦点发送回 editText .. 这样您就可以线程或计时器任务,或任何管理这种临时焦点改变到 et0 的方法..这里不需要重新启动输入。

希望这会帮助你..