Обратный вызов OnKeyDown в InputMethodService работает для многих кнопок аппаратной клавиатуры, но не срабатывает со стрелками влево, вправо, вверх, вниз. Как я могу справиться с этим?
Спасибо за внимание!
Обратный вызов OnKeyDown в InputMethodService работает для многих кнопок аппаратной клавиатуры, но не срабатывает со стрелками влево, вправо, вверх, вниз. Как я могу справиться с этим?
Спасибо за внимание!
Вы смотрели документацию для разработчиков по обработке ключевых событий? Вы могли бы попробуйте onKeyDown или onKeyUp, чтобы получить только одно событие, и распечатайте keyCode, чтобы увидеть, что получено:
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
Log.i("your tag", "Keycode: " + keyCode);
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_LEFT:
leftKeyClick();
return true;
case KeyEvent.KEYCODE_DPAD_RIGHT:
rightKeyClick();
return true;
case KeyEvent.KEYCODE_DPAD_UP:
upKeyClick();
return true;
case KeyEvent.KEYCODE_DPAD_DOWN:
downKeyClick();
return true;
default:
return super.onKeyUp(keyCode, event);
}
}
Дополнительные сведения см. в справочнике по объекту KeyEvent. Если вы по-прежнему не обнаруживаете клавиши со стрелками, вам может потребоваться переопределить метод onKeyDown или onKeyUp вашего представления, этот похожий вопрос может быть полезен.