我需要调出一些不同的键盘:带有Ctrl和Alt键的“标准”键盘;也许是光标垫;等等。
我找到了Keyboard
类,它可以让我在XML资源中定义一个键盘。我发现KeyboardView
类有一个setKeyboard
方法......到目前为止,我还没有发现任何其他类需要Keyboard
个实例。
我应该如何使用KeyboardView
?我尝试在我的活动的XML中添加一个;使用findViewById
在运行时找到它;然后调用setKeyboard
...但所有这些都搞砸了我的布局,不打开特殊键盘。
答案 0 :(得分:3)
事实证明这是非常可行的,我最初的问题可能更多地与一般的Android newbiness(这是我的第一个Android应用程序)而不是KeyboardView有关。特别是,我习惯于将可见性视为一个简单的二进制属性。
总之:
KeyboardView
android:visibility="gone"
setKeyboard()
以附加键盘。这很重要,因为KeyboardView
从键盘中获得了它的大小。KeyboardView.setOnKeyboardActionListener()
。在将此功能从Dialog
重构回我的主View
后,我将OnKeyboardActionListener
功能放在一个独立的类中,但这不是必需的。keyboardView.setEnabled(true);
。这似乎不是必要,但我不确定(还)在什么情况下它会重要;只有当您拨打setEnabled(false)
。keyboardView.setPreviewEnabled(true);
- 如果用户无法从键盘正上方的输入biox获得视觉反馈,这将非常有用。keyboardView.setVisibility(VISIBLE);
。要在适当时隐藏键盘,只需拨打keyboardView.setVisibility(GONE);
即可。要更改键盘(如在shift键或循环键盘键盘上,只需再次调用setKeyboard
。我使用Map<<Integer, Keyboard>
来实现延迟创建模式; a如果程序运行很长时间并且键盘使用不多,则可能需要弱引用。
答案 1 :(得分:0)
Keyboard
和KeyboardView
用于制作替代输入法引擎(IME)。然后,这些可以由用户选择,就像他们可以从Android Market安装Swype,Graffiti和其他内容一样。
作为开发人员,您可以创建这样的IME,但不能强迫用户使用。
答案 2 :(得分:0)
在editText视图中使用inputType属性将有助于在不同的系统键盘(电话,电子邮件等)之间进行选择。此外,SDK附带的APIDemos应用程序还有一个如何实现强制自定义键盘的示例仅适用于您的应用。