0

-アップデート-

Agarwalが提案したように実行しましたが、次のエラーが発生します。

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

このコードを使用して、15個のボタンの幅を動的に設定しています。そして、あなたはそれを推測しました、それは機能しません。エラーは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);
    }

助けてくれてありがとう。(そして、誰かがbuttons[]変数を埋めるためのより良い方法を考えることができれば、それは非常にありがたいです。)

4

2 に答える 2

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

上記のループを16回繰り返し、15個のボタンのみを挿入しました。ボタンを追加するか、x <15を変更します。x<15を変更する場合は、以下も変更します。

Button[]ボタン=新しいButton[15];

于 2012-04-21T11:37:32.653 に答える
1

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

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

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

から取得LayoutParamsLinearLayoutます。

于 2012-04-21T12:58:50.877 に答える