Android RadioGroup检查多个RadioButton?

时间:2011-11-25 05:14:53

标签: android radio-button radio-group

我正在使用RadioGroup,将RadioButton rdbut添加到RadioGroup rdgrp,例如rdgrp.addView(rdbut)

   for(int j=0;j<3;j++)
   {
         RadioGroup rdgrp = new RadioGroup;
         for(int i=0;i<=10;i++)
         {
             RadioButton rdbut = new RadioButton(this);
             rdbut.setText("RadioButtion"+i);
             rdbut.setId(i);
             rdbut.setTag("somename");
             rdgrp.addView(rdbut);
         }
    }    

上面的代码显示了我如何初始化radiogroup和单选按钮。在我运行此代码后,在模拟器/移动设备中,我可以一次检查2个单选按钮。

可能是什么问题?

3 个答案:

答案 0 :(得分:1)

像这样更改您的代码。

  RadioGroup rdgrp[] = new RadioGroup[3];

  For(int j=0;j<3;j++)
   {
         RadioButton rdbut[] = new RadioButton[10];
         For(int i=0;i<=10;i++)
         {

             rdbut[i].setText("RadioButtion"+i);
             rdbut[i].setId(j*100+i);
             rdbut[i].setTag("somename");
             rdgrp[j].addView(rdbut[i]);
         }
    } 

答案 1 :(得分:0)

您已创建三个不同的广播组您只能从一个组中选择一个单选按钮。因此,您可以从三个组中选择三个按钮但是没有组间关系。您可以同时从不同的组中选择单选按钮。在您的情况下,您可以选择最多三个按钮

由于 苏尼

答案 2 :(得分:0)

在用户布局文件中使用像xml设计这样的东西。

   <TableLayout
            android:id="@+id/tbl_layoutchoice"
            style="@style/InfoTableView"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="3dip" >

            <RadioGroup
                android:id="@+id/SelectLayout_Group"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" >
            </RadioGroup>
 </TableLayout>

和For在Activity的OnCreate()方法中使用此RadioGroup,并像这样使用findView

 mRadioGroup = (RadioGroup) this.findViewById(R.id.SelectLayout_Group);

然后使用以下代码,您需要更改以在一个RadioGroup中添加单选按钮。使用下面还要求动态创建单选按钮的声明。

     ArrayList<String> layoutlist = new ArrayList<String>(3);
     int index = -1;
     LayoutParams lp = new LayoutParams(LayoutParams.FILL_PARENT,
        LayoutParams.WRAP_CONTENT);


   for (String layout : layoutlist) {
        RadioButton r = new RadioButton(this);
        index++;
        r.setText(layout);
        r.setId(index);
        r.setLayoutParams(lp);
        r.setTextAppearance(this, R.style.TextBase);


        mRadioGroup.addView(r);


    }

所以不要忘记在for循环之前在layoutlist中添加你的字符串值。而R.style是RadioButton中文本显示需要的样式。