【问题标题】:Getting proper text input from physical keyboard in Android从 Android 中的物理键盘获取正确的文本输入
【发布时间】:2017-11-17 00:49:16
【问题描述】:

我有一个覆盖OnKeyDown 事件的View。我可以得到 Key Code 和 KeyEvent,但我似乎遗漏了一些东西。

让我解释一下。对于非美国键盘布局,我得到的键码是错误的。例如,当我按下 西班牙语键盘 中的 ñ 键时,我希望收到一个“ñ”字母,但我却得到一个 Keycode.AltLeft 作为键码。

我如何得到真正的信?

另一个有问题的情况是重音字符:当我按 ´ 键和 o 键时,我不应该收到两个事件,而只能收到一个带有字母 ó 的事件。

【问题讨论】:

  • “我希望收到一封“ñ”信——所有语言的所有字符都没有KEYCODE_值。当你call getUnicodeChar() on the KeyEvent时,你会得到什么?“当我按下´ 键和 o 键,我不应该收到两个事件”——你为什么这么认为?毕竟,the documentation for getDeadChar() 似乎不同意你的观点。
  • "当你在 KeyEvent 上调用 getUnicodeChar() 时,你会得到什么?"我得到一个 0(零)
  • 好的,你是对的 :) 我刚刚测试过,' 键不会触发 KeyPress 事件。它仅在之后按下“o”时触发。但是你提到的 getUnicodeChar 我得到了 111 而不是 243(“ó”的 Unicode)

标签: android keyboard internationalization android-input-method


【解决方案1】:

你想做什么?应该是级别太低了。 按下键可能不一定与生成的最终输入文本有关。例如,要生成日语字符,必须按一系列键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 2019-12-09
    • 2016-03-15
    • 1970-01-01
    相关资源
    最近更新 更多