我的应用中有一个列表。
当用户用手指触摸列表项时,onListItemClick处理程序将触发,我让它打开一个新的Activity。
但是,当用户使用轨迹球/打击垫单击时,我想执行一些不同的功能。我已经超越了onTrackballEvent,一切都在模拟器的轨迹球模式下完美运行。
不幸的是,在Samsung Moment上进行测试时,单击触控板会触发onListItemClick处理程序,而不是onTrackballEvent处理程序。
有谁知道为什么?有没有人有办法解决这个问题?
答案 0 :(得分:1)
在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;
}
}
}
});
它对我有用。希望这会给你一些想法
答案 1 :(得分:-1)
尝试覆盖dispatchTrackball
事件并抓住这些事件。另外,只是一个建议 - 我不会在轨迹球上使用不同的动作,因为并非所有的Android手机都有轨迹球。