Нажатие кнопки "Поиск" для Android на клавиатуре
Я разрабатываю свою собственную клавиатуру.
Как обрабатывать нажатие кнопки "Поиск" в случае, если наша клавиатура открылась с IME_ACTION_SEARCH
параметр?
У меня есть следующий код, но, к сожалению, в случае поиска он не работает. В обычной ситуации с кнопкой "Готово" все работает хорошо.
final int options = this.getCurrentInputEditorInfo().imeOptions;
final int actionId = options & EditorInfo.IME_MASK_ACTION;
switch (actionId) {
case EditorInfo.IME_ACTION_SEARCH:
ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_SEARCH));
break;
default:
ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER));
}
Спасибо
1 ответ
Решение
Я нашел решение сделать это:
endDefaultEditorAction(true);
это метод InputMethodService
Полный код:
case Keyboard.KEYCODE_DONE:
final int options = this.getCurrentInputEditorInfo().imeOptions;
final int actionId = options & EditorInfo.IME_MASK_ACTION;
switch (actionId) {
case EditorInfo.IME_ACTION_SEARCH:
sendDefaultEditorAction(true);
break;
case EditorInfo.IME_ACTION_GO:
sendDefaultEditorAction(true);
break;
case EditorInfo.IME_ACTION_SEND:
sendDefaultEditorAction(true);
break;
default:
ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER));
}
break;