onKeyDown не се активира при натискане на стрелка наляво, надясно, нагоре, надолу в Android

Обратното извикване на OnKeyDown в InputMethodService работи за много хардуерни бутони на клавиатурата, но не се задейства със стрелка наляво, надясно, нагоре, надолу. Как мога да се справя?

Благодаря за вниманието!


person EastBK    schedule 24.11.2013    source източник
comment
можете да видите logcat и да покажете грешката, която получавате....   -  person vinay Maneti    schedule 24.11.2013
comment
Няма грешка. Предполагам, че Android не поддържа събитие за изстрелване за тези видове бутони на клавиатурата.   -  person EastBK    schedule 24.11.2013


Отговори (1)


Разгледахте ли документацията за разработчици за обработка на ключови събития? Бихте могли опитайте 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 Object дава повече подробности. Ако все още не откривате клавишите със стрелки, тогава може да се наложи да замените метода onKeyDown или onKeyUp на вашия изглед, този подобен въпрос може да е полезен.

person brendan    schedule 24.11.2013