场景是用户长按活动A 。 lonkclick上的活动A 启动活动B ,而用户不抬起手指。 活动B 应检测到用户仍在触摸屏幕。
我试图通过...来实现它。
活动A 中的
ButtonA.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
startActivityForResult(new Intent(ActivityA.this, ActivityB.class), REQUEST_1);
return true;
}
});
活动B ... 中的
ButtonB.setOnTouchListener(new OnTouchListener() {
int oldEvent = -1;
@Override
public boolean onTouch(View v, MotionEvent event) {
if (oldEvent != event.getAction()) {
oldEvent = event.getAction();
Toast.makeText(ActivityB.this, event.getAction() + "", Toast.LENGTH_SHORT).show();
}
return true;
}
});
例如,ButtonA和ButtonB位于屏幕上的相同位置。绝对/
但 ButtonB 启动 ActivityB 后,无事件。 ACTION_DOWN和ACTION_UP都没有。一般来说,我希望在 ButtonB 上收到ACTION_UP: - )
答案 0 :(得分:2)
如果手指在您开始活动时已经在屏幕上,您将无法获得ACTION_DOWN。你也不会得到ACTION_UP,因为还没有ACTION_DOWN。也许你有自己的推理这样做,但一般来说用户应该可以取消操作,因此按钮应该在点击时做出反应(DOWN然后在同一个对象上UP)。如果动作发生在DOWN,那么用户就无法取消它(即通过将手指移动到对象外面并抬起它)。
答案 1 :(得分:1)
使用FragmentActivity解决任务。