所以,我正在开发一个应用程序,需要同时按下两个按钮。 我需要按下时触发按钮的事件(同时也是这样)。
想象一辆车 - 我有左,右,前,后。我需要按EG。向前和向右一起向右转。这是我的方法,但出于某些原因,当我按下两个按钮时,只触发按下的按钮...有任何想法吗?
// Handle touches of the navigation arrows
public boolean onTouch(View v, MotionEvent theMotion) {
switch (theMotion.getAction()) {
// A button was PRESSED
case MotionEvent.ACTION_DOWN:
switch (v.getId()) { // Which button?
case R.id.freestyle_upArrow: // The upArrow
bt.sendNXTcommand(MOTOR_B_FORWARD, 720);
break;
case R.id.freestyle_downArrow: // The downArrow
bt.sendNXTcommand(MOTOR_B_BACKWARD, 720);
break;
case R.id.freestyle_leftArrow: // The leftArrow
bt.sendNXTcommand(MOTOR_A_LEFT, 720);
break;
case R.id.freestyle_rightArrow: // The rightArrow
bt.sendNXTcommand(MOTOR_A_RIGHT, 720);
break;
}
break;
// A button was RELEASED
case MotionEvent.ACTION_UP:
switch (v.getId()) { // Which button?
case R.id.freestyle_upArrow: // The upArrow
bt.sendNXTcommand(MOTOR_B_STOP, 0);
break;
case R.id.freestyle_downArrow: // The downArrow
bt.sendNXTcommand(MOTOR_B_STOP, 0);
break;
case R.id.freestyle_leftArrow: // The leftArrow
break;
case R.id.freestyle_rightArrow: // The rightArrow
break;
}
break;
}
return true;
}
那么,有什么想法吗?它与我的屏幕上允许的点数有关吗?
PHONE SPECS:三星Galaxy Ace在固件2.2.1上运行Android操作系统
此致
富
答案 0 :(得分:1)
使用
switch (event.getAction() & MotionEvent.ACTION_MASK)
您想要寻找
MotionEvent.ACTION_POINTER_UP
MotionEvent.ACTION_POINTER_DOWN
对于第二根手指。请记住,无论哪个手指先被抬起,你都会得到一个ACTION_POINTER_UP
答案 1 :(得分:-1)
您可以根据创建逻辑来检查 ACTION_DOWN (单触)和 ACTION_POINTER_DOWN (多点触控)。注意: ACTION_POINTER 表示多点触控本身