-METTRE À JOUR-
J'ai fait comme suggéré Agarwal, et maintenant j'ai cette erreur:
04-21 11:42:01.807: E/AndroidRuntime(1456): java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
J'utilise ce code pour définir de manière dynamique la largeur de 15 boutons. Et, vous l’avez deviné, cela ne fonctionne pas. L’erreur se produit dans le for
boucle, mais je ne sais pas pourquoi.
Button[] buttons = new Button[16];
buttons[0] = (Button)findViewById(R.id.root2);
buttons[1] = (Button)findViewById(R.id.root3);
/* blah blah blah */
buttons[13] = (Button)findViewById(R.id.root15);
buttons[14] = (Button)findViewById(R.id.root16);
LayoutParams lp = new LayoutParams(widthOfButtons,LayoutParams.WRAP_CONTENT);
for(int x = 0; x < 16; x ++){
buttons[x].setLayoutParams(lp);
}
Merci pour toute aide. (Et si quelqu'un peut penser à un meilleur moyen de remplir le buttons[]
variable, ce serait très apprécié.)
Réponses:
3 pour la réponse № 1for(int x = 0; x < 16; x ++){
buttons[x].setLayoutParams(lp);
}
la boucle ci-dessus a été répétée 16 fois et vous n'aviez installé que 15 boutons, soit en ajoutant un bouton, soit en modifiant x <15. si vous changez x <15 alors changez aussi le dessous
Bouton [] boutons = nouveau bouton [15];
1 pour la réponse № 2
Je l'ai corrigé en utilisant ceci:
LayoutParams lp = new LinearLayout.LayoutParams(widthOfButtons,LayoutParams.WRAP_CONTENT);
for(int x = 0; x < 15; x ++){
buttons[x].setLayoutParams(lp);
}
Obtenir LayoutParams
de LinearLayout
.