0

我创建了自己的自定义键盘。我计划研究自然语言处理的算法,例如swype keyboard. 我已经能够使用所有需要的键来制作键盘,但是,如何根据 Button Press 从键盘调用函数来处理输入数据。

编辑

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处理和预测文本。

4

1 回答 1

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”应用程序。对于其他复杂的操作,例如轻弹或轻扫,只需使用触摸点进行一些数学运算即可。

于 2013-05-30T15:22:49.630 回答