Android应用特定软键盘

19
有没有一种方法可以在Android上创建一个特定应用的软键盘?经过阅读InputMethodService文档和查看其他替代键盘应用程序后,我发现替代键盘只能配置为系统范围内使用(通过“设置”->“语言和文本”)。
如果上述问题的答案是否定的,那么是否至少有一种方法可以加载自定义词典并覆盖系统键盘的默认词典(仅当我的应用程序正在使用时)?这将帮助在用户只敲击了几个按键时向用户提供非常相关的建议。
2个回答

21
如果你只想要一个看起来和行为类似于软键盘的视图,我在我的SmallKeyboard类中完成了这个功能。你只需要扩展android.inputmethodservice.KeyboardView并决定布局即可。请查看该文件末尾的onKey和onText方法,以了解按下按键时所采取的操作。

如果您的键集相当固定,您可以从XML中加载而不是使用我的键盘模型内部类。


5
问题没有得到完整回答。如何告诉你的应用程序使用这个自定义键盘? - Lukasz Wiklendt
3
你不需要告诉它使用这个键盘。它就是一个视图,所以你可以像处理其他普通视图一样对待它。 - Valentin Rocher
我的SmallKeyboard类的链接现在是404。 - Graeme
又是404错误。我没有完全理解如何让这个键盘弹出而不是系统键盘的答案。我知道它只是像其他视图一样的视图。但当焦点放在编辑文本上时,如何让这个键盘弹出而不是系统键盘? - Greg Ennis
@GregEnnis 链接已修复。至于在EditText上禁用内置键盘,看起来你可以尝试使用https://developer.android.com/reference/android/widget/TextView.html#setInputType(int)和TYPE_NULL,但我还没有测试过。 - Chris Boyle
显示剩余2条评论

9

Android Nethack应用程序提供了一个完整而清晰的源代码示例,展示如何为应用程序创建自定义键盘,如何在屏幕上显示它以及如何定义多个键盘布局。它包含了你需要知道的几乎所有内容。

这无疑是我见过的最好的示例。

http://code.google.com/p/nethack-android/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接