onTrackballEvent не стреляет на Samsung Момент - PullRequest
1 голос
/ 16 ноября 2010

У меня есть список в моем приложении.

Когда пользователь касается пальцем элемента списка, запускается обработчик onListItemClick, и он открывает новое действие.

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

К сожалению, при тестировании на Samsung Moment при нажатии на трекпад запускается обработчик onListItemClick, а не обработчик onTrackballEvent.

Кто-нибудь знает почему? У кого-нибудь есть способ обойти это?

Ответы [ 2 ]

1 голос
/ 23 ноября 2010

В просмотре списка вы можете установить OnKeyListener и делать код, когда keyEvent.KEYCODE_DPAD_CENTER

listview.setOnKeyListener(new OnKeyListener() {

            public boolean onKey(View v, int keyCode, KeyEvent event) {
               switch(keyCode){
                 case KeyEvent.KEYCODE_DPAD_CENTER:
                    if(event.getAction()==KeyEvent.ACTION_UP){ //to do it only when key is released 
                   // do the code while trackball/pad is clicked
                    }
                   return true;
                 default:
                    return false;
                 }
              }
         }
});

Это работает для меня. Надеюсь, что это даст вам некоторое представление

0 голосов
/ 21 ноября 2010

Попробуйте переопределить событие dispatchTrackball и захватите эти события. Кроме того, просто предложение - я бы не стал использовать другое действие на трекболе, потому что не все телефоны Android имеют трекбол.

...