【发布时间】:2021-10-17 09:11:25
【问题描述】:
我在 Android 应用中有一个 MotionEvent 代码。 当我松开最后一根手指(ACTION_UP)时,它有条件,当我松开手指但任何其他手指仍在屏幕上时(ACTION_POINTER_UP)。所以,这是两种不同的情况,我需要在这两种情况下运行代码。 但是编译器告诉我,我有完全相同的代码,并提议将这两个部分合并为一个。
我怎样才能避免这个警告?
有一个代码:
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN: // first touch
// some code for a touch
break;
case MotionEvent.ACTION_POINTER_DOWN: // second and more touch
// some code for a second touch
break;
case MotionEvent.ACTION_MOVE:
// code when the finger moves
break;
case MotionEvent.ACTION_UP:
// left side
if (event.getPointerId(event.getActionIndex()) == fingerOnALeftSide) {
Log.d("tag", "Now we release the finger that was on a left side");
leftFingerInTouch = false;
}
// right side
if (event.getPointerId(event.getActionIndex()) == fingerOnARightSide) {
Log.d("tag", "Now we release the finger that was on a right side");
myBluetooth.send(COMMAND_STOP_ENGINE);
}
break;
case MotionEvent.ACTION_POINTER_UP:
// left side
if (event.getPointerId(event.getActionIndex()) == fingerOnALeftSide) {
Log.d("tag", "Now we release the finger that was on a left side");
leftFingerInTouch = false;
}
// right side
if (event.getPointerId(event.getActionIndex()) == fingerOnARightSide) {
Log.d("tag", "Now we release the finger that was on a right side");
myBluetooth.send(COMMAND_STOP_ENGINE);
}
break;
default:
break;
}
【问题讨论】:
-
"...提议将这两个部分合并为一个。" 这就是你应该做的。
-
如果我(自动)合并它,它会完全删除 ACTION_UP 条件,所以我的代码不会在这种情况下运行。
-
嗯..它的工作......好吧)
标签: android switch-statement motionevent