android - Android 应用程序如何加载键盘?

标签 android keyboard android-2.2-froyo

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

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

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

最佳答案

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

无论如何:

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

要在适当的时候隐藏键盘,只需调用 keyboardView.setVisibility(GONE); .要更改键盘(如 shift 键或循环符号键盘键,只需再次调用 setKeyboard。我使用 Map<<Integer, Keyboard> 来实现惰性创建模式;弱引用可能是可取的,如果程序会运行很长时间,并且不会经常使用键盘。

关于android - Android 应用程序如何加载键盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3938523/

相关文章:

android - 如何轻松/合法地将我的应用程序功能添加到其他应用程序中?

android - 创建新项目时没有构建目标

Android 依赖项引用了不存在的库 google-play-services_lib.jar

android - facebook 从 android 和网络服务器连接

java - 如何将通话记录中的号码填充到 onClick 列表中?

java - Java中如何让每次按回车键时弹出一个新文本?

java - 哪些版本的 Android SDK 支持在哪些版本的 Java 中编码?

android - 从位图中获取图像并将其放入字符串中

c# - 如何从 WPF KeyDown 事件中获取普通字符?

unicode - 关键人 : Configure Unicode-complete fonts for mobile Keyboard Development