该场景是,例如,用户长单击活动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在屏幕上的相同位置。绝对/
但是,启动ActivityB时ButtonB没有任何事件。 ACTION_DOWN或ACTION_UP都没有。通常我想在ButtonB上收到ACTION_UP :-)
最佳答案
如果您在开始活动时手指已经在屏幕上,您将不会获得ACTION_DOWN。另外,您还不会获得ACTION_UP,因为还没有ACTION_DOWN。也许您有自己的理由来执行此操作,但是通常用户应该可以取消该操作,因此按钮应在单击时做出反应(在同一对象上单击“向下”,然后“向上”)。如果在DOWN上进行操作,则用户无法取消它(即,将手指移到对象外并抬起它)。