在我的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动作中取消选择
答案 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++;
}