这是我在这个网站上的第一篇文章,我希望它做得好。我试图在我的radiogroup中有一个选择,但所有这些选择都被选中,无法取消选中。我想如果选择了一个单选按钮,其他按钮仍未选中。到目前为止,这是我的代码。
for (int row = 0; row < 1; row++) {
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
for (int i = 1; i <= repItem.length; i++) {
final RadioButton rdbtn = new RadioButton(this);
rdbtn.setId((row * 2) + i);
rdbtn.setText(repItem[i-1]);
ll.addView(rdbtn);
final RadioButton rd=new RadioButton(this);
rdbtn.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
unCheckOther(rd, rdbtn.getId());
}
private void unCheckOther(RadioButton rd, int id)
{
for (int row = 0; row < 1; row++) {
for (int i = 1; i <= repItem.length; i++) {
int butId=((row * 2) + i);
if(butId != id)
{
rd.setChecked(false);
}
}
}
}
});
}
((ViewGroup) findViewById(R.id.radiogroupchoi)).addView(ll);
}
亲切的问候
答案 0 :(得分:2)
您应该使用RadioGroup而不是LinearLayout
作为容器。它将照顾互斥。
答案 1 :(得分:0)
您需要的是RadioGroup
。我看到你使用了linearLayout
并将所有单选按钮添加到其中。那不是你想要的。您只需将该线性布局更改为RadioGroup
即可。