我创建了自己的自定义键盘。我打算研究像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
如何处理和预测文本。
答案 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,只需用触点进行一些数学运算。