2011-05-13 4 views
2

S'il vous plaît, aidez-moi à ce sujet, Im essayant de produire 2 boutons radio dans une boucle en fonction dynamique à l'entrée utilisateur waht je veux est d'avoir des boutons radio commeAndroid - Boutons radio dynamique Problème

* Radio Button1 * RadioButton2

* Radio Button1 * RadioButton2

* Radio Button1 * RadioButton2

* Radio Button1 * RadioButton2

. . .

.

et ainsi de suite .. en fonction de la boucle!

Voici l'extrait de mon code, il fonctionne pour seulement 2 boutons radio dans une seule ligne, mais quand j'augmente la valeur de count. . Je reçois une erreur de temps d'exécution android de l'enfant radiogroup déjà avec un parent. : S

List<RadioGroup> allradioGroup = new ArrayList<RadioGroup>(); 
RadioGroup radioGroup; 

List<RadioButton> allRadio = new ArrayList<RadioButton>(); 
RadioButton radioButton; 

     for (int i = 0; i < count; i++) { 

     /* Defining RadioGroup */ 
     radioGroup = new RadioGroup(this); 
     radioGroup.setOrientation(RadioGroup.HORIZONTAL); 

     allradioGroup.add(radioGroup); 


     /* Displaying Radio Buttons */ 
     for (int j = 0; j < 2; j++) { 
      radioButton = new RadioButton(this); 
      radioButton.setTextColor(getResources().getColor(R.color.grey)); 
      radioButton.setId((j + 100)); 

      allRadio.add(radioButton); 

      if (allRadio.get(j).getId() == 100) { 
       radioButton.setText("private"); 
      } else if (allRadio.get(j).getId() == 101) { 
       radioButton.setText("public"); 
      } 

       allradioGroup.get(i).addView(allRadio.get(j), j, 
         layoutParams); 
     } 

     linear.addView(allradioGroup.get(i)); 

    } 

Veuillez HELP. Merci

Répondre

0

Votre problème est cette ligne: "allradioGroup.get (i) .addView (allRadio.get (j), j, layoutParams);"

Le paramètre j sera compris entre 0 et 1, également lors de la création de votre deuxième ligne. Vous essayez d'utiliser allRadio.get (j) qui à la deuxième exécution renverra le premier bouton radio que vous avez créé (qui a déjà un parent). Pour corriger cela, remplacez "j" par: "i * 2 + j". Cela devrait le réparer.

+0

Ohhhhh, Yesssss mon badd Merci beaucoup Frenkenstain im marquant cela comme la bonne réponse Cela a fonctionné comme un charme Merci beaucoup –

+0

Pouvez-vous m'aider s'il vous plaît aussi à récupérer des valeurs de chaque bouton radio dans chaque rangée. . Cela pourrait m'aider beaucoup .. (: –

+0

Vous avez tous vos RadioGroups dans une liste.Vous pouvez boucler à travers ce: 'pour (int i = 0; i jorgenfb