2

これについて私を助けてください。ユーザー入力に応じて for ループで 2 つのラジオ ボタンを動的に作成しようとしています。次のようなラジオ ボタンが必要です。

*ラジオボタン1 *ラジオボタン2

*ラジオボタン1 *ラジオボタン2

*ラジオボタン1 *ラジオボタン2

*ラジオボタン1 *ラジオボタン2

. . .

.

などなど・・・ループ次第!

これは私のコードのスニペットです。これは、1行に2つのラジオボタンのみで機能しますが、 count の値を増やすと機能します。. すでに親を持つラジオグループの子のアンドロイド実行時エラーが発生します。:S

List<RadioGroup> allradioGroup = new ArrayList<RadioGroup>();
RadioGroup radioGroup;

List<RadioButton> allRadio = new ArrayList<RadioButton>();
RadioButton radioButton;

        for (int i = 0; i < count; i++) {

        /* Defining RadioGroup */
        radioGroup = new RadioGroup(this);
        radioGroup.setOrientation(RadioGroup.HORIZONTAL);

        allradioGroup.add(radioGroup);


        /* Displaying Radio Buttons */
        for (int j = 0; j < 2; j++) {
            radioButton = new RadioButton(this);
            radioButton.setTextColor(getResources().getColor(R.color.grey));
            radioButton.setId((j + 100));

            allRadio.add(radioButton);

            if (allRadio.get(j).getId() == 100) {
                radioButton.setText("private");
            } else if (allRadio.get(j).getId() == 101) {
                radioButton.setText("public");
            }

                allradioGroup.get(i).addView(allRadio.get(j), j,
                        layoutParams);
        }

        linear.addView(allradioGroup.get(i));

    }

助けてください。ありがとう

4

1 に答える 1

0

問題は次の行です: "allradioGroup.get(i).addView(allRadio.get(j)、j、layoutParams);"

2番目の行を作成するときも、パラメーターjは0から1の範囲になります。allRadio.get(j)を使用しようとしています。これは、2回目の実行で、作成した最初のラジオボタン(すでに親があります)を返します。これを修正するには、「j」を「i * 2+j」に置き換えます。それはそれを修正する必要があります。

于 2011-05-13T12:34:14.610 に答える