/ / Looping com setLayoutParams - ClassCastException - java, android, layout android

Fazendo um loop com setLayoutParams - ClassCastException - java, android, android-layout

-ATUALIZAR-

Fiz o que Agarwal sugeriu e agora tenho este erro:

04-21 11:42:01.807: E/AndroidRuntime(1456): java.lang.ClassCastException: android.view.ViewGroup$LayoutParams cannot be cast to android.widget.LinearLayout$LayoutParams

Estou usando esse código para definir dinamicamente a largura de 15 botões. E, você adivinhou, isso não funciona. O erro ocorre no for loop, mas não sei por que.

    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);
}

Obrigado por qualquer ajuda. (E se alguém puder pensar em uma maneira melhor de preencher o buttons[] variável, isso seria muito apreciado.)

Respostas:

3 para resposta № 1
for(int x = 0; x < 16; x ++){
buttons[x].setLayoutParams(lp);
}

o loop acima é repetido novamente por 16 vezes e você instilou apenas 15 botões para adicionar um botão ou alterar x <15. se você alterar x <15, altere também o abaixo

Botão [] botões = novo botão [15];


1 para resposta № 2

Corrigi-o usando este:

LayoutParams lp = new LinearLayout.LayoutParams(widthOfButtons,LayoutParams.WRAP_CONTENT);

for(int x = 0; x < 15; x ++){
buttons[x].setLayoutParams(lp);
}

Obtendo LayoutParams a partir de LinearLayout.