-AGGIORNARE-
Ho fatto come suggerito Agarwal e ora ho questo errore:
04-21 11:42:01.807: E/AndroidRuntime(1456): java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams
Sto usando questo codice per impostare dinamicamente la larghezza di 15 pulsanti. E, avete indovinato, non funziona. L'errore si verifica nel for
loop, ma non sono sicuro del perché.
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);
}
Grazie per qualsiasi aiuto. (E se qualcuno può pensare a un modo migliore per riempire il buttons[]
variabile, sarebbe molto apprezzato).
risposte:
3 per risposta № 1for(int x = 0; x < 16; x ++){
buttons[x].setLayoutParams(lp);
}
il ciclo precedente si ripete per 16 volte e hai instillato solo 15 pulsanti o aggiungi un pulsante o cambia x <15. se cambi x <15, cambia anche il sotto
Button [] buttons = new Button [15];
1 per risposta № 2
L'ho risolto usando questo:
LayoutParams lp = new LinearLayout.LayoutParams(widthOfButtons,LayoutParams.WRAP_CONTENT);
for(int x = 0; x < 15; x ++){
buttons[x].setLayoutParams(lp);
}
ottenere LayoutParams
a partire dal LinearLayout
.