2015-03-31 1 views
0

dans la première activité j'ai deux bouton radio et bouton et je veux quand l'un d'eux et appuyez sur le bouton intention de deuxième activité et et montrer toast auto mon code est ci-dessous et mon application force fermervérifier radioButton sélectionné de la deuxième activité

première activité

@Override 
    public void onClick(View view) { 
     RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup2); 
     int selection = radioGroup.getCheckedRadioButtonId(); 
     if (selection==R.id.rb4) { 
      Intent intent = new Intent(getApplicationContext(),MyActivity2.class); 
      intent.putExtra("art","0") ; 
      startActivity(intent); 
     } 
      else if (selection==R.id.rb5) { 
      Intent i = new Intent(getApplicationContext(),MyActivity2.class); 
      i.putExtra("sport","1") ; 
      startActivity(i); 
     } 
    } 
}); 

deuxième activité

String value = getIntent().getExtras().getString("art"); 
String value2 = getIntent().getExtras().getString("sport"); 
if (value.equals("0")){ 
    Toast.makeText(getApplicationContext(), "this is my Toast message1)", 
      Toast.LENGTH_LONG).show(); 
} 
else if (value2.equals("1")){ 
    Toast.makeText(getApplicationContext(), "this is my Toast message2)", 
      Toast.LENGTH_LONG).show(); 
} 
+0

pouvez-vous publier votre journal des erreurs –

+0

3-31 06: 28: 31.190: ERREUR/PGA (520): PgaSocketWriteAllHdipc: hd_ipc_send() échoué – chy

Répondre

0

Le problème est ici

String value = getIntent().getExtras().getString("art"); 
String value2 = getIntent().getExtras().getString("sport"); 

Vous envoyez une seule valeur de la première activité

-à-dire soit « art » sera envoyé ou « sport » sera envoyé, alors que dans votre deuxième activité que vous récupérez à la fois values.So cette volonté finissent comme une exception nullpointer à chaque fois.

+0

merci ce que je fais s'il vous plaît aidez-moi – chy

+0

J'ajoute une autre réponse wait –

+1

Vérifiez si la chaîne supplémentaire existe avant de définir vos valeurs. Utilisez la méthode [Intent.hasExtra] (http://developer.android.com/reference/android/content/Intent.html#hasExtra%28java.lang.String%29) pour vérifier si une valeur supplémentaire existe avec les valeurs associées . – TheWanderingMind

0

meilleure solution est d'utiliser la variable statique

en première activité déclarer, num int statique public;

si la sélection == R.id.rb4 que set num = 1;

si (sélection == R.id.rb5) que set num = 2;

deuxième activité, si la vérification >> premier activity.num == 1 que donner toast1 premier activity.num == 2 donner toast2

supprimer putextra ainsi que d'obtenir de plus ...

0

Utilisez ce code

@Override 
    public void onClick(View view) { 
     RadioGroup radioGroup = (RadioGroup) findViewById(R.id.radioGroup2); 
     int selection = radioGroup.getCheckedRadioButtonId(); 
     if (selection==R.id.rb4){ 

       Intent intent = new Intent(getApplicationContext(),MyActivity2.class); 
       intent.putExtra("art","0") ; 
       startActivity(intent); 
     } 

      else if (selection==R.id.rb5){ 
       Intent i = new Intent(getApplicationContext(),MyActivity2.class); 
       i.putExtra("art","1") ; 
       startActivity(i); 


     } 


    } 
}); 

Activité Deuxième

String value = getIntent().getExtras().getString("art"); 
if (value.equals("0")){ 
    Toast.makeText(getApplicationContext(), "this is my Toast message1)", 
      Toast.LENGTH_LONG).show(); 
} 
else if (value.equals("1")){ 
    Toast.makeText(getApplicationContext(), "this is my Toast message2)", 
      Toast.LENGTH_LONG).show(); 
} 
+0

marquer la bonne réponse comme accepté.Il aidera les autres utilisateurs à venir ici. –

+0

merci beaucoup pour goog guide il a résolu – chy

+0

@chy Je voudrais encore vérifier si l'extra existe avant d'obtenir sa valeur: if (getIntent(). HasExtra ("art")) {Valeur chaîne = getIntent(). GetExtras(). GetString ("art"); } – TheWanderingMind