3

我需要调出几个不同的键盘:带有 Ctrl 和 Alt 键的“标准”键盘;也许是光标垫;等等。

我找到了这个Keyboard类,它可以让我在 XML 资源中定义一个键盘。我发现这个KeyboardView类有一个setKeyboard方法......到目前为止,我还没有找到任何其他接受Keyboard实例的类。

我应该如何使用KeyboardView?我尝试在我的活动 XML 中添加一个;findViewById在运行时用;找到它 然后打电话setKeyboard......但这所做的一切只是弄乱了我的布局并且没有调出特殊的键盘。

4

3 回答 3

3

事实证明这是非常可行的,我最初的问题可能更多地与一般的 Android 新手有关(这是我的第一个 Android 应用程序),而不是 KeyboardView。特别是,我习惯于将可见性作为一个简单的二进制属性。

无论如何:

  1. KeyboardView在您的 XML 文件中声明android:visibility="gone".
  2. 在使视图可见之前,调用setKeyboard()附加键盘。这很重要,因为KeyboardView它的大小来自键盘。
  3. 要获取原始键事件,请调用KeyboardView.setOnKeyboardActionListener(). 在将这个功能从Dialogback 重构到 mainView之后,我将该OnKeyboardActionListener功能放在一个独立的类中,但这不是必需的。
  4. 我打电话keyboardView.setEnabled(true);。这似乎没有必要,但我(还)不确定在什么情况下它会很重要;也许只有当你打电话时setEnabled(false)
  5. 我打电话keyboardView.setPreviewEnabled(true);- 如果用户不会从键盘正上方的输入 biox 获得视觉反馈,这将特别有用。
  6. 然后,在键盘全部设置好后,调用keyboardView.setVisibility(VISIBLE);.

要在适当的时候隐藏键盘,只需调用keyboardView.setVisibility(GONE);. 要更改键盘(如在 shift 键或循环符号键盘键上,只需setKeyboard再次调用。我使用 aMap<<Integer, Keyboard>来实现延迟创建模式;如果程序愿意,可能需要弱引用运行时间长,键盘用处不大。

于 2010-10-25T18:18:27.917 回答
0

Keyboard并且KeyboardView用于制作替代输入法引擎(IME)。然后用户可以选择这些,就像他们可以从 Android Market 安装 Swype、Graffiti 和其他软件一样。

作为开发人员,您可以创建这样的 IME,但您不能将其强加给用户。

于 2010-10-15T00:17:44.573 回答
0

在您的 editText 视图中使用inputType属性将有助于在不同的系统键盘(电话、电子邮件等)之间进行选择。此外,SDK 附带的 APIDemos 应用程序有一个示例,说明如何仅为您的应用程序实现强制自定义键盘。

于 2010-10-15T00:27:07.457 回答