OnTrackBalleVent не стреляет в Samsung Moment
Вопрос
У меня есть список в моем приложении.
Когда пользователь затрагивает элемент списка пальцем, обработчик onlistiTemClick стреляет, и я открывает новое действие.
Однако, когда пользователь использует Trackball/Pad, чтобы нажать, я хочу выполнить различные функции. Я отменял OnTrackBalleVent, и все прекрасно работает в режиме трекбола эмулятора.
К сожалению, при тестировании в момент Samsung нажимает на трекпад, стреляет в обработчика OnListIteMClick, а не обработчика OnTrackBalleVent.
Кто -нибудь знает, почему? У кого -нибудь есть способ обойти это?
Решение
В ListView вы можете SetOnKeyListener и код, когда KeyCode - 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;
}
}
}
});
Это работает для меня. Надеюсь, это даст вам представление
Другие советы
Попробуйте переопределить dispatchTrackball
событие и возьмите эти события. Кроме того, просто предложение - я бы не использовал другое действие на трекболе, потому что не все телефоны Android имеют трекбол.