2014-05-01 3 views
0

Je passe 3 ints de MainActivity à main et je les affiche dans . Lorsque je clique sur le bouton pour aller à l'activité suivante, il montre le dernier int passé dans la dernière vue. En appuyant sur le bouton de retour de mon smartphone, la dernière vue texte est remise à 0 et affiche la valeur correcte pour la deuxième vue de texte. Ensuite, en appuyant à nouveau sur le bouton de retour, il réinitialise la deuxième vue de texte à 0 et affiche la valeur correcte pour la première vue de texte.Le passage d'une autre activité provoque un comportement étrange

code à l'intérieur OnCreate méthode à MainActivity.java:

  Intent sendX = new Intent(MainActivity.this, main.class); 
      sendX.putExtra("x", x); 
      startActivity(sendX); 
      Intent sendY = new Intent(MainActivity.this, main.class); 
      sendY.putExtra("y", y); 
      startActivity(sendY); 
      Intent sendZ = new Intent(MainActivity.this, main.class); 
      sendZ.putExtra("z", z); 
      startActivity(sendZ); 

code à l'intérieur méthode OnCreate à main.class:

Intent getX = getIntent(); 
    x = getX.getIntExtra("x", 0); 
    Intent getY = getIntent(); 
    y = getY.getIntExtra("y", 0); 
    Intent getZ = getIntent(); 
    z = getZ.getIntExtra("z", 0); 

    TextView test1 = (TextView)findViewById(R.id.testx); 
    test1.setText(Integer.toString(x)); 
    TextView test2 = (TextView)findViewById(R.id.testy); 
    test2.setText(Integer.toString(y)); 
    TextView test3 = (TextView)findViewById(R.id.testz); 
    test3.setText(Integer.toString(z)); 

Répondre

3

Vous devez lire sur la façon dont Intentions travailler un peu plus. Vous démarrez essentiellement 3 instances de la même activité. Pour ce faire, à la place:

Intent intent = new Intent(MainActivity.this, main.class); 
intent.putExtra("x", x); 
intent.putExtra("y", y); 
intent.putExtra("z", z); 
startActivity(intent); 

et

Intent intent = getIntent(); 
x = intent.getIntExtra("x", 0); 
y = intent.getIntExtra("y", 0); 
x = intent.getIntExtra("z", 0); 
+0

Merci beaucoup. Ça a marché. – davidstar

Questions connexes