Android键盘输入预定义文本

时间:2015-10-12 10:17:57

标签: android keyboard keyboard-shortcuts android-softkeyboard custom-keyboard

我一直关注this tutorial制作自定义键盘。到目前为止一切都很好。

但是,我想知道,是否可以创建一个输入预定义文本的按钮。例如。标有“名称”的按钮,用于输入用户名? 如果有可能,我该怎么办?我做了大量的研究,但什么都找不到。

1 个答案:

答案 0 :(得分:1)

是的,这是可能的。在您的InputMethodService实现中定义新的密钥

private final static int NAME_CODE = -32; // value is absolutely random. The main requirement - there should not be coincidence with other codes

然后在onKey()方法中检查它

@Override
public void onKey(int primaryCode, int[] keyCodes) {
    InputConnection ic = getCurrentInputConnection();
        switch(primaryCode){
        .....
        case NAME_CODE:
            ic.commitText(name, name.length());
            break;
        .....

之后只需使用此代码绑定Keyboard规范(示例中的qwerty.xml)和逻辑中的特殊键。

<Key android:codes="-32" android:keyLabel="NAME" android:keyWidth="20%p" android:isRepeatable="true"/>