Android 以触摸方式打开活动

Android 以触摸方式打开活动,android,android-activity,android-touch-event,Android,Android Activity,Android Touch Event,在我的第一个活动中,触摸左侧或右侧将打开第二个活动 在值计算X和Y中,活动将根据条件打开。这是代码的一部分 case MotionEvent.ACTION_MOVE: if (v.getId() == R.id.layout3) { float currentX = event.getX(); float currentY = event.getY(); if ((currentX > 160.0) && (cu

在我的第一个活动中,触摸左侧或右侧将打开第二个活动 在值计算X和Y中,活动将根据条件打开。这是代码的一部分

case MotionEvent.ACTION_MOVE:

    if (v.getId() == R.id.layout3) {

        float currentX = event.getX();
        float currentY = event.getY();

        if ((currentX > 160.0) && (currentY > 5.0) && (currentY < 55.0) &&(downXValue < 146.0)){       
            startActivity(i); 
        }
    }
    break;
case MotionEvent.ACTION\u移动:
if(v.getId()==R.id.layout3){
float currentX=event.getX();
float currentY=event.getY();
如果((currentX>160.0)&&(currentY>5.0)&&(currentY<55.0)&(downXValue<146.0)){
星触觉(i);
}
}
打破
所以这里一切都很顺利。 问题在于,该活动会重复地打开,并相互累积 如果我想回到第一个活动,你应该按下按钮五次以上 这意味着第二个活动打开了五次以上。
我是Android的新手。我想知道问题在哪里,正确的方法是什么,错误在哪里。谢谢

您可以添加一个标志来检查活动是否已启动:

private activityStarted = false;

if (!activityStarted && (currentX > 160.0) && (currentY > 5.0) && (currentY < 55.0) && (downXValue < 146.0)){   
    activityStarted = true;    
    startActivity(i); 
}
private activityStarted=false;
如果(!activityStarted&&(currentX>160.0)&&(currentY>5.0)&(currentY<55.0)&&(downXValue<146.0)){
activityStarted=true;
星触觉(i);
}

我猜您使用的是触摸式监听器。因为你(和每个人)的手指都太大了,几乎每一次点击都被算作多次屏幕触摸。所以,添加一个标志,在完成标准后,startActivity不再被调用。谢谢你提供有用的信息谢谢,但我在哪里让她回来错误你可以在简历中这样做谢谢,我让他们在简历中返回错误他们变好了