2017-09-05 92 views
2

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

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; 

所以这里一切顺利。 问题在于活动重复累积超过对方 如果我想返回到第一个活动,您应该按下按钮超过五次 这意味着第二个活动打开了五次以上。 我是Android新手。我想知道问题出在哪里,什么是正确的方法,错误在哪里。谢谢

+0

我使用的是触摸听众猜您选择。由于你的(和每个人)的手指很大,几乎每个水龙头都算作多个屏幕接触。因此,添加一个标志,在标准完成后,startActivity不再被调用。 – Gotiasits

+0

谢谢您的信息 –

回答

2

你可以添加一个标志,检查是否活动已经启动:

private activityStarted = false; 

if (!activityStarted && (currentX > 160.0) && (currentY > 5.0) && (currentY < 55.0) && (downXValue < 146.0)){ 
    activityStarted = true;  
    startActivity(i); 
} 
+0

谢谢,但我会在哪里让她回来假 –

+0

你可以在onResume –

+1

这样做谢谢你,我让他们在onResume中返回false他们变得很好 –