Checkbox incrémenté

Résolu/Fermé
lewebdefiston Messages postés 7 Date d'inscription mardi 14 février 2006 Statut Membre Dernière intervention 8 décembre 2016 - 19 janv. 2014 à 00:13
lewebdefiston Messages postés 7 Date d'inscription mardi 14 février 2006 Statut Membre Dernière intervention 8 décembre 2016 - 28 janv. 2014 à 16:51
Bonjour à tous,
je m'excuse par avance, novice en java, je risque d'en choquer quelque un ;)

J'entreprends un développement d'application pour android.

je souhaiterais réaliser une boucle afin d'attribuer un numéro concaténé à un nom de checkbox.

Je m'explique.

J'ai plusieurs CheckBox dans mon fichier XML que j'ai nommé checkBoxVoit11, checkBoxVoit12, etc jusqu'à checkBoxVoit20.

Je souhaiterais dans mon code java mettre en place une boucle for afin de récupérer toutes les vues de celle-ci.


for(int i = 11; i <= 20; i++)
{
checkBoxVoit+i = (CheckBox) findViewById(R.id.checkBoxVoit+i);
}

Je n'arrive pas à saisir comment concaténer ma variable i au nom de ma checkBoxVoit afin d'optimiser mon code.

Quelqu'un pourrait-il m'éclairer un peu à ce sujet ou me donner des ressources pour mieux comprendre ce que je dois faire ?

En espérant avoir été à peu prêt clair, j'attends une réponse avec impatience.


2 réponses

Impossible. Tu ne peux pas récupérer tes checkbox comme ca, si tu les a déclarées dans ton XML. R.id.checkBoxName correspond à un entier, dont tu peux voir la valeur dans le R. et les valeurs ne s'incrémentent pas de 1 entre chaque élément que tu déclare. Donc impossible.

Par contre tu peux créer manuellement tes checkboxs (non déclarés dans le XML du coup), comme ceci (création dynamique de la fiche) :

 
final LinearLayout l1 = new LinearLayout(this);

for(int i=0 ; i <= 20 ; i++){
CheckBox c = new CheckBox(getApplicationContext());
c.setText("Dynamic Checkbox "+i);
l1.addView(c);
}
this.setContentView(l1);

ou encore pour avoir tes checkboxs dans un tableau :

ArrayList<CheckBox> lCheck = new ArrayList<CheckBox>();

for(int i=0 ; i <= 20 ; i++){
lCheck.add(new CheckBox(getApplicationContext()));
}
0
lewebdefiston Messages postés 7 Date d'inscription mardi 14 février 2006 Statut Membre Dernière intervention 8 décembre 2016 2
28 janv. 2014 à 16:51
Je te remercie pour ta réponse. J'ai compris tout ça entre temps en lisant plusieurs tutos.

J'ai encore du boulot pour maîtriser tout ça lol.
0

Discussions similaires