从Android自定义键盘调用功能

时间:2013-05-30 15:07:30

标签: android

我创建了自己的自定义键盘。我打算研究像swype keyboard这样的自然语言处理算法。我已经能够用所有想要的键制作键盘,但是,如何通过按键按键盘上的功能来处理输入数据。

修改

Keyboard.xml

<Key android:codes="51" android:keyLabel="W" />
<Key android:codes="33" android:keyLabel="E" />
<Key android:codes="SOMETHING" android:keyLabel="Call_DETECTKEYPRESS" />

使用Android文档中的代码,在键盘中需要的所有按键和特殊按键。

MyFunction.java

public static List<String> DetectKeyPress(List<String> keysPressed){

//Custom Algorithm to process and predict possible words based on Natural Language Processing.
}

因此,如果我点击标记为Call_DETECTKEYPRESS的键,则可以调用DetectKeyPress()中的函数MyFunction.java

或者不可能?如果不可能SWYPE keyboard如何处理和预测文本。

1 个答案:

答案 0 :(得分:0)

您可以在键盘的xml布局文件中设置键和键码,

<Key android:codes="-202" android:keyLabel="DO SOMETHING"/>

public static final KEY_DO_SOMETHING = -202;

然后,你应该实现你自己的键盘控制器类,

public class SoftKeyboard extends InputMethodService implement KeyboardView.OnKeyboardActionListener

覆盖onKeyDown或onKeyUp函数,

@Override public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch (keyCode) {
        case KEY_DO_SOMETHING:
        // do what you want to do here
    }
}

您还可以查看android的sdk中提供的示例'softKeyboard'应用。 对于其他复杂的操作,如轻弹或swype,只需用触点进行一些数学运算。