2013-05-30 55 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,只需做一些帶觸點的數學。