2016-01-20 154 views
1

我已经完成了相当多的Google搜索,并且找不到与我正在尝试做什么有关的任何事情。自定义Android键盘:如何创建辅助键盘

我按照这个教程:http://code.tutsplus.com/tutorials/create-a-custom-keyboard-on-android--cms-22615和我有它的工作,因为我希望它为我的自定义(俄罗斯)键盘布局。不过,我也希望能够在我自定义的俄罗斯版面和英文版面之间来回切换。

现在我必须去我的屏幕上方,每次选择一个新的键盘(这需要大约5秒左右,但我经常来回切换)。我想让它在键盘之间切换一次。

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

+0

只需在您的自定义键盘上添加一个语言键,然后点击更改键盘的xml文件即可。你必须尝试看看它是否有效。 –

+0

我非常感谢答复。这正是我想要做的。有没有机会告诉我该语言键的键码是什么?以及如何切换键盘xml的?我可以创建第二个XML,只是不知道如何切换到它。 我真的很感谢你的帮助。 – Kurt

+0

@Kurt你可以通过设置'tag:'切换到两个布局,并检查活动中的标签。 – Gattsu

回答

0

我不能感谢你足够的Vivek Mishra。你是个天才好先生!

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

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

然后,我添加了一个密钥,与密钥-51(任意选择)到这两个xml文件。 然后回到SimpleIME.java文件时,安其作用下,我说:

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程序员找到一个相当简单的任务的解决方案。