情况就是这样:我有4个radioButtons 不是 radioGroup的成员。多数民众赞成因为RadioGroup默认将儿童放在垂直顺序,不能相互放置。现在,我检查所有的radioButtons。我想要实现的是控制它们的检查状态,这样当检查一个(true)时,其他检查状态自动设置为false。小部件是独立的布局元素,所以我想我必须找到一种方法将它们组合在一起。我通过使用isChecked和setChecked内置方法使用简单的if..else if函数编码4个RadioButton变量来尝试它。然后我尝试在Radiobutton []数组中对它们进行分组,并使用switch-case循环循环到array.length。什么都行不通。 现在堆叠2天。任何帮助表示赞赏。
感谢您的回复,我进一步解释。我在RelativeLayout父级中有4个imageViews和4个radioButton,每个都在下面,这样用户就可以选择他喜欢的图像。 imageViews不是垂直放置的,radioButtons也是如此。这就是为什么我不想使用radioGroup。我可以使用LinearLayout并将imageViews置于垂直方向,并将一组中的radioButtons放在它们旁边。默认情况下,每个radioButton检查状态都为false,当我检查它时,它变为true。问题是我可以检查所有的radioButtons 。我想要的是当我选择一个RadioButton时,其他的将自动取消选中,这样任何时候都只能检查一个。 这是片段:
private RadioButton rbtnWater;
private RadioButton rbtnRoad;
private RadioButton rbtnBoy;
private RadioButton rbtnLeft;
rbtnWater = (RadioButton) findViewById(R.id.rbtnWater);
rbtnRoad = (RadioButton) findViewById(R.id.rbtnRoad);
rbtnBoy = (RadioButton)findViewById(R.id.rbtnBoy);
rbtnLeft = (RadioButton) findViewById(R.id.rbtnLeft)
//method called at onClick attribute (XML)
public void checkState(View v) {
if (rbtnWater.isChecked()) {
rbtnLeft.setChecked(false);
rbtnBoy.setChecked(false);
rbtnRoad.setChecked(false);
}
else if (rbtnLeft.isChecked()) {
rbtnBoy.setChecked(false);
rbtnWater.setChecked(false);
rbtnRoad.setChecked(false);
}
else if (rbtnBoy.isChecked()) {
rbtnWater.setChecked(false);
rbtnRoad.setChecked(false);
rbtnLeft.setChecked(false);
}
else if (rbtnRoad.isChecked()) {
rbtnWater.setChecked(false);
rbtnBoy.setChecked(false);
rbtnLeft.setChecked(false);
}
}
答案 0 :(得分:1)