使用单选按钮动态创建快速率

时间:2011-10-04 06:47:54

标签: android

我正在创建一个动态获取评级表单的应用程序。但是当我实现此代码时,无线电组会选择2个选项(单选按钮)。我想以单选按钮的形式进行评级,用户只能选择1个单选按钮。检查我的代码:

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

        LinearLayout lay_hori=new LinearLayout(this);
        lay_hori.setOrientation(LinearLayout.HORIZONTAL);
        TextView optionText=new TextView(this);
        optionText.setText(current_ques.option_text[i]);
        optionText.setTextColor(Color.BLACK);
        optionText.setWidth(110);
        rg_rating[i]=new RadioGroup(this); //radio group
        rg_rating[i].setMinimumHeight(30);
        rg_rating[i].setId(i);
        rg_rating[i].setOrientation(RadioGroup.HORIZONTAL);
        for(int j=0;j<4;j++)
        {
            rb_rating[j]=new RadioButton(this); //radio buttons
            rb_rating[j].setId(j);

            rg_rating[i].addView(rb_rating[j]);   
            Log.i("rg_rating[i]", ""+rg_rating[i]);
            Log.i("rb_rating[j]",""+ rb_rating[j]);

        }
        Log.i("rg_rating[i]Child", ""+rg_rating[i].getChildCount()); //it returns that each radio group has 4 child,correct

        rg_rating[i].setOnCheckedChangeListener(checkRadioGroup);

        lay_hori.addView(optionText);
        lay_hori.addView(rg_rating[i]);
        layout_main.addView(lay_hori);

    } 

但是在收听组中的运行时,单选按钮选择2个选项而不是1

1 个答案:

答案 0 :(得分:0)

我觉得在一组Radio Group中添加一个Radio Buttons数组并不是一个好主意。

我没有机会测试您的代码,但您可以尝试以下代码吗?

我刚刚停止使用一组Radio Buttons,因为最终你只在j循环内的无线电组中添加了一个元素。
请更正您可能遇到的任何错误。

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

    LinearLayout lay_hori=new LinearLayout(this);
    lay_hori.setOrientation(LinearLayout.HORIZONTAL);
    TextView optionText=new TextView(this);
    optionText.setText(current_ques.option_text[i]);
    optionText.setTextColor(Color.BLACK);
    optionText.setWidth(110);
    rg_rating[i]=new RadioGroup(this); //radio group
    rg_rating[i].setMinimumHeight(30);
    rg_rating[i].setId(i);
    rg_rating[i].setOrientation(RadioGroup.HORIZONTAL);
    for(int j=0;j<4;j++)
    {
        rb_rating=new RadioButton(this); //radio buttons
        rb_rating.setId(j);

        rg_rating[i].addView(rb_rating);   
        Log.i("rg_rating[i]", ""+rg_rating[i]);
        Log.i("rb_rating[j]",""+ rb_rating.getId());

    }
    Log.i("rg_rating[i]Child", ""+rg_rating[i].getChildCount()); //it returns that each radio group has 4 child,correct

    rg_rating[i].setOnCheckedChangeListener(checkRadioGroup);

    lay_hori.addView(optionText);
    lay_hori.addView(rg_rating[i]);
    layout_main.addView(lay_hori);

}