2012-04-21 8 views
0

-UPDATE-はsetLayoutParamsでループ - ClassCastExceptionが

私はAgarwalさんが示唆されているように行われ、そして今、このエラー持っている:私は動的に15個のボタンの幅を設定するには、このコードを使用しています

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

を。そして、あなたはそれを推測した、それは動作しません。 forループでエラーが発生しますが、その理由はわかりません。

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

ありがとうございました。 16回以上のループrepaeat

+0

15個または16個のボタンがありますか? –

答えて

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

(そして、誰もが非常に高く評価されるだろうbuttons[]変数を、埋めるためのより良い方法を考えることができます。場合)、あなただけの15ボタンをinstilizedていたいずれかのボタンを追加したり、変更する場合x < 15. xを変更する場合は<と入力して15を変更してください。

Button [] buttons = new Button [15];

+0

ありがとうございます。私は 'x <15 'に変更しましたが、今度は新しいエラーが発生します。あなたは一見を持てますか?私は質問を更新しました。 – ACarter

+0

editted post投稿を見る –

+0

私はあまりにも多くの配列を開いていたのですが、私はまだ問題を抱えています。あなたのすべての助けをありがとう。 – ACarter

1

私はこれを使用して、それを修正した:

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

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

LinearLayoutからLayoutParamsを取得します。

関連する問題