2013-05-30 39 views
0

我已经创建了我自己的定制键盘。我正计划使用自然语言处理算法,如swype keyboard。我已经能够用所有想要的按键制作键盘,但是,如何通过按键来调用键盘上的功能来处理输入数据。从Android定制键盘调用功能

编辑

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关键是有没有办法调出功能在MyFunction.java

DetectKeyPress()或者它是不可能的?如果不可能,SWYPE keyboard如何能够处理和预测文本。

+0

你是什么意思“从键盘调用函数?” –

+0

基本上我希望我的键盘根据键入的内容建议可能的单词。所以我的算法需要在每次按下某个键时调用。我提到的函数包含算法 –

+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 
    } 
} 

你也可以看看示例'softKeyboard'app哪个pro在Android的SDK中提供。 对于其他复杂的操作,如轻弹或swype,只需做一些带触点的数学。