2013-05-30 2 views
0

Я создал свою собственную клавиатуру. Я планирую работать над алгоритмами обработки естественного языка, например swype keyboard. Я смог сделать клавиатуру со всеми желаемыми клавишами, но, как мне вызвать функцию с клавиатуры на основе кнопки Нажмите для обработки входных данных.Вызов функции из пользовательской клавиатуры Android

EDIT

В 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

В принципе, я хочу, чтобы моя клавиатура предлагала возможные слова на основе того, что набирается. Поэтому мой алгоритм нужно вызывать каждый раз при нажатии клавиши. Функция, которую я имею в виду, содержит алгоритм –

+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», в котором про vide в sdk android. Для других сложных операций, таких как flick или swype, просто выполните некоторую математику с точками касания.

Смежные вопросы