这是我在这个网站上的第一篇文章,我希望它做得很好。我正在尝试在我的单选组中有一个选择,但所有选择都被选中并且无法取消选中。我希望如果选择一个单选按钮,其他按钮将保持未选中状态。这是我到目前为止的代码。
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);
}
亲切问候
应使用单选组而不是LinearLayout
作为容器。它将负责相互排斥。
你需要的是RadioGroup
。我看到您已经使用了linearLayout
并将所有单选按钮添加到其中。那不是你想要的。您只需将该线性布局更改为 RadioGroup
.