我可以在使用自定义键盘时访问 EditText setText 方法吗?

Posted

技术标签:

【中文标题】我可以在使用自定义键盘时访问 EditText setText 方法吗?【英文标题】:Can I get access to EditText setText method while using custom keyboard? 【发布时间】:2021-05-27 12:15:43 【问题描述】:

我正在使用custom keyboard。我的要求是当用户键入一些快捷方式(如 gm)然后自动(早上好)应该在那里。我不知道如何使用自定义键盘来做到这一点,因为在普通的 Editext 中我们可以只使用 TextWatcher 和 editext.setText("something")。请帮忙..

【问题讨论】:

但是你将TextWatcher添加到EditText,为什么自定义键盘会出现问题? @AlexRmcf 我没有使用 textwatcher,问题在于我提到的自定义键盘。 【参考方案1】:

如果您要创建自定义键盘,则在由 InputMethodService 扩展的 Softkeyboard 类中的 commitTyped 方法上。此方法有助于在编辑文本上写入任何文本。而这个类中的另一个方法是OnKey,在这个方法中,你应该接收到主码32。基本上,32码是软键盘中的空格键码。当您收到 32 个代码时,您会从编辑文本中获取文本并通过 commitType 方法替换为另一个文本。 我认为您应该将拼写的快捷字符存储在共享首选项和 SQLite 等中,因为有时移动设备上无法使用互联网。

【讨论】:

感谢您的帮助,但整个项目中没有 commitTyped 方法。 你能在edit text中找到你写文本的方法吗 无法访问EditText,因为键盘是我的,但不是Editext所有者的应用程序。 我知道键盘是自定义的,如果您无权编辑文本,请告诉我您的键盘在做什么。看你的Inputservicemethod类如果你自己的代码看不懂那么附上输入法类的代码我会看告诉你的。 我用过这个代码,请查收-github.com/rkkr/simple-keyboard

以上是关于我可以在使用自定义键盘时访问 EditText setText 方法吗?的主要内容,如果未能解决你的问题,请参考以下文章

EditText.SetText() 在自定义适配器中更改我的软键盘输入类型

在自定义适配器中隐藏软键盘

处理 EditText 未聚焦状态时的物理键盘按键事件

自定义软键盘输入盖住edittext的问题怎么解决

如何使用软键盘在输入编辑文本字段区域中键入自定义字体? [关闭]

Android键盘在Page Renderer中失去了对触摸的关注