【问题标题】:Custom Android Keyboard: How to Create Secondary Keyboard自定义 Android 键盘:如何创建辅助键盘
【发布时间】:2016-04-25 19:47:59
【问题描述】:

我已经做了很多谷歌搜索,但我找不到任何与我正在尝试做的事情有关的内容。

我已经按照本教程进行操作:http://code.tutsplus.com/tutorials/create-a-custom-keyboard-on-android--cms-22615,并且我已经按照我想要的方式为我的自定义(俄语)键盘布局工作了。不过,我也希望能够在我的自定义俄语布局和英语布局之间快速来回切换。

现在我每次都必须转到屏幕顶部并选择一个新键盘(大约需要 5 秒左右,但我经常来回切换)。我想让它一键切换键盘。

如果有人可以向我解释如何创建一个允许我切换到第二个布局的键,将不胜感激。

【问题讨论】:

  • 只需将语言键添加到您的自定义键盘,然后单击更改键盘 xml 文件。你必须尝试看看它是否有效。
  • 非常感谢您的回复。这正是我想要做的。你有没有机会告诉我语言键的键码是什么?以及如何切换键盘xml?我可以创建第二个 xml,只是不确定如何切换到它。非常感谢您的帮助。
  • @Kurt 您可以通过设置tag: 来切换到这两种布局并检查活动中的这些标签。
  • 我不知道它的确切键码,但是一旦我为我的键盘创建了一个笑脸键,我只是点击并尝试了键码,-10 键码对我有用。你也可以试试你的钥匙
  • 对不起,我根本不懂安卓编程。这是我的第一个 android 项目,也可能是我的最后一个项目,所以我不太熟悉那是什么。我认为本教程没有将其设置为“活动”(?)。所以我不确定这是否适合我。 “此应用没有 Activity,这意味着它不会显示在启动器中。”

标签: android keyboard


【解决方案1】:

Vivek Mishra 真是太感谢你了。你真是个天才好先生!

我创建了第二个 xml 文件 (engQwerty.xml) 来存储我的第二个布局。从那里开始,在我的 SimpleIME.java 文件中,在方法“onCreateInputView()”中,我使用我的新 xml 文件创建了第二个键盘,并创建了一个私有布尔变量(在我的例子中为 isRus)来跟踪我在哪个布局中。

  engKeyboard = new Keyboard(this, R.xml.engQwerty);
  isRus = true;

然后我向两个 xml 文件添加了一个密钥,密钥代码为 -51(任意选择)。 然后回到 SimpleIME.java 文件中,在 onKey 函数下,我添加了:

  case -51 :

  if(isRus) {
      kv.setKeyboard(engKeyboard);
      isRus = false;
  }
  else {
      kv.setKeyboard(rusKeyboard);
      isRus = true;
  }

  break;

即检查我当前所处的布局并相应地在它们之间切换。

最后,如果您希望 caps 或 shift 键相应地更新您的键盘,请在“onKey”功能中的“case Keyboard.KEYCODE_SHIFT:”下确保添加新键盘以成为“setShifted”。

  engKeyboard.setShifted(caps);

所有功劳归功于 Vivek Mishra。希望这可以帮助像我这样的其他新手 android 程序员找到一个相当简单的任务的解决方案。

【讨论】:

    猜你喜欢
    • 2016-12-10
    • 2012-01-09
    • 2011-06-06
    • 2016-05-29
    • 2012-12-26
    • 2011-02-28
    • 2022-09-23
    相关资源
    最近更新 更多