android - 动态第一个单选按钮处于true状态

时间:2012-06-26 14:23:08

标签: android dynamic radio-button radio-group

在我的Android应用程序中,我尝试根据arraylist大小创建一个动态单选按钮,使用以下代码在一个广播组内

for (int aa = 0; aa < itemname.length(); aa++)
{
    String iname = itemname.getJSONObject(aa).getString("item");

    final RadioButton[] radioButton = new RadioButton[itemname.length()];
    radioButton[aa] = new RadioButton(this);
    radioGroup.addView(radioButton[aa]);
    radioButton[aa].setTextColor(R.color.black);
    radioButton[aa].setText(iname);
    radioButton[aa].setButtonDrawable(R.drawable.about_us_tab);                       

    radioButton[aa].setId(h_count);
    radioGroup.setOnCheckedChangeListener(new     android.widget.RadioGroup.OnCheckedChangeListener()
     {   
         public void onCheckedChanged(RadioGroup group, int checkedId)
         {   
             int selectedBtn = radioGroup.getCheckedRadioButtonId();
          }
       });
       h_count++;
      }
  }

我按正确的顺序获取所有数据,并且无线电组的onclick操作也正常工作。 但我希望第一个单选按钮处于选定模式。为此,我尝试使用if条件如下

if(aa == 0)
    {
        radioButton[aa].setChecked(true);
        radioButton[aa].setId(h_count);
    }

但问题在于,第一个是被选中,并且在无线电组的onclick动作中,第一个没有被取消,所有其他的都正常工作。

如何使第一个也在无线电组的onclick动作中取消选择

1 个答案:

答案 0 :(得分:0)

尝试这种方式及其工作

for (int aa = 0; aa < itemname.length(); aa++)
{
    String iname = itemname.getJSONObject(aa).getString("item");

    final RadioButton radioButton = new RadioButton(this);
    radioGroup.addView(radioButton;
    radioButton.setTextColor(R.color.black);
    radioButton.setText(iname);
    radioButton.setButtonDrawable(R.drawable.about_us_tab);                       

    if(aa == 0)
    {
        radioButton.setChecked(true);
    }

    radioButton.setId(h_count);
    radioGroup.setOnCheckedChangeListener(new     android.widget.RadioGroup.OnCheckedChangeListener()
    {   
         public void onCheckedChanged(RadioGroup group, int checkedId)
         {   
             int selectedBtn = radioGroup.getCheckedRadioButtonId();
         }
    });
    h_count++;
}