Отключить ключи DPAD в android

Я пытаюсь поймать события, созданные клавишами стрелок (UP, DOWN, RIGHT и LEFT) и отключить их. Ниже фрагмента кода относится к одному из классов активности.

@Override public boolean onKeyUp(int keyCode, KeyEvent event) { if(event.getAction() == KeyEvent.KEYCODE_DPAD_DOWN) return true; else return true; } 

Однако с этим кодом на месте работает ключевая навигация. Я попытался добавить ключевого слушателя к активности, которая тоже не работает.

Целевым устройством является Samsung GT-I5500 с версией Android 2.2.

Я что-то пропустил?

Переопределите onKeyDown и верните true, а не false. Что-то вроде этого:

 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_LEFT: case KeyEvent.KEYCODE_DPAD_RIGHT: case KeyEvent.KEYCODE_DPAD_UP: case KeyEvent.KEYCODE_DPAD_DOWN: return true; } return false; } 

В документации указано, что вы должны вернуть:

  • True, если вы обработали событие
  • False , если вы хотите разрешить обработку события следующим приемником .

Ваш метод возвращает false, поэтому вы передаете событие ключевому обработчику по умолчанию