Bonjour à tous,
Je débute en Java et j'ai un peu de mal avec l'utilisation des variables.
A partir d'un layout XML où j'ai défini mes boutons (plusieurs dizaines !), j'essaie de constituer dans une boucle for la variable qui va bien pour la passer au listener et ainsi instancier mes boutons.
Et c'est là que je galère.
Mon bouton "squelette" de départ est "jeton" et je veux incrémenter "jeton" en "jeton1", "jeton2"...etc pour être en phase avec les IDs bouton créés dans le XML.
Ca doit être tout bête mais je sèche...
J'ai essayé en passant par une Array mais le code plantait à l'exécution...
Voila l'idée, ce code est conçu pour un seul bouton et ne fonctionne pas :
Mon XML :
La Main Class Java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <Button android:id="@+id/jeton1" android:layout_column="0" android:layout_row="0" android:text="@string/boutona" android:layout_height="88dp" android:layout_width="88dp" android:textSize="40sp" android:backgroundTint="#eeceac" android:textStyle="bold" />
Merci pour votre aide parce que là je suis coincé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 public class MainActivity extends AppCompatActivity { int i; String jeton = "jeton"; // private Button[i] jeton = new Button[R.id.jeton[i]]; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Step 3 Assignation des objets du tableau Array aux boutons for(int i=1; i<2; i++) { jeton = jeton + i; // Variable sous la forme "jeton1" public void addListenerOnButton(jeton); { // Erreur jeton = (Button) findViewById(R.id.jeton); // Ne marche pas, ne trouve pas jeton1 jeton.setOnClickListener(new OnClickListener() { // Erreur @Override public void onClick(View arg0) { /* Les 2 actions effacent le texte et affectent la couleur du background au btn */ jeton.getBackground().setAlpha(0); // Erreur jeton.setTextColor(Color.parseColor("#2aa17b")); // Erreur } }); }
Partager