Android - Problème de boutons radio dynamiques
-
13-11-2019 - |
Question
S'il vous plaît aidez-moi sur celui-ci, je tente de produire 2 boutons radio dans A pour une boucle de manière dynamique en fonction de l'entrée de l'utilisateur waht je veux avoir des boutons radio comme
* Bouton radio1 * RadioButton2
* Bouton radio1 * RadioButton2
* Bouton radio1 * RadioButton2
* Bouton radio1 * RadioButton2
. . .
.
Et ainsi de suite .. en fonction de la boucle!
Voici le snippet de mon code que c'est fonctionner pour seulement 2 boutons radio d'une rangée que lorsque j'augmente la valeur du nombre de comptes..Je reçois une erreur de temps d'exécution Android d'un enfant de radiogroupe ayant déjà 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));
}
S'il vous plaît aider.Merci
La solution
Votre problème est cette ligne: "Allradiogroup.get (i) .Addview (ALLRADIO.GET (J), J, LayOutParams);"
Le paramètre J sera compris dans la plage 0-1, également lorsque vous créez votre deuxième ligne.Vous essayez d'utiliser allradio.get (j) qui sur la deuxième exécution retournera le premier bouton radio que vous avez créé (qui a déjà un parent).Pour résoudre ce problème, remplacez "J" avec: "I * 2 + J".Cela devrait le réparer.