我有一个 ListActivity;ListView 中的每个项目都有一个复选框。
当您触摸列表项时,会启动另一个 Activity。
当您使用触控板/轨迹球突出显示(阅读:选择)一个项目并单击触控板时,它基本上模拟了触摸该项目。这会导致我的其他活动启动。
我想单击触控板以检查突出显示项目的复选框。有没有我可以覆盖的处理程序来执行此操作?
您需要覆盖该onTrackballEvent(MotionEvent)
方法并 catch ACTION_DOWN
。以下是如何执行此操作的示例:
@Override
public boolean onTrackballEvent(MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
//Do your work here
return true;
}
return super.onTrackballEvent(event);
}
希望这对你有用!
不确定对此的明确答案,但值得研究的一件事是android:focusable
。
我认为您最好的选择是使列表项本身不可聚焦,但复选框可聚焦。这样,当用户使用轨迹球/垫滚动时,它将在复选框而不是列表项之间切换焦点,并以您想要的方式运行。这不会影响触摸事件。