2017-09-05 1 views
2

Dans ma première activité touchant à gauche ou à droite ouvre la deuxième activité Du calcul de la valeur X et Y L'activité est ouverte en fonction des conditions. Cela fait partie du code. Ouvrir une activité de manière tactile 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; 
Le problème est que l'activité s'ouvre à plusieurs reprises s'accumulant les uns sur les autres Si je veux revenir à la première activité, vous devez appuyer sur le bouton plus de cinq fois Cela signifie que la deuxième activité ouverte plus de cinq fois. Je suis nouveau sur Android. Je veux savoir où est le problème et quelles sont les méthodes correctes et où sont les erreurs. Merci

+0

Je devine que vous êtes à l'aide des auditeurs tactiles. Puisque votre doigt (et tout le monde) est trop grand, presque chaque tap est considéré comme plusieurs touches d'écran. Donc, ajoutez un drapeau après lequel le critère est rempli startActivity n'est plus appelé. – Gotiasits

+0

Merci pour les informations utiles –

Répondre

2

Vous pouvez ajouter un drapeau pour vérifier si l'activité est déjà commencé:

private activityStarted = false; 

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

Merci, mais où vais-je la faire revenir faux –

+0

Vous pouvez le faire dans onResume –

+1

Merci, je les ai fait retourner false dans onResume Ils sont devenus bons –