ontrackballevent不在三星时刻开火
题
我的应用中有一个列表。
当用户用手指触摸列表项目时,onListItemClick处理程序会开火,我打开了一项新活动。
但是,当用户使用轨迹球/垫单击时,我想执行一些不同的功能。我已经覆盖了OnTrackBallevent,并且在模拟器的轨迹球模式下一切都很好。
不幸的是,在三星时刻进行测试时,单击触控板会启动OnListItemClick Handler,而不是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手机都有轨迹球。
不隶属于 StackOverflow