下面是这样的情况:我有4个radioButtons,不是radioGroup的成员。这是因为在默认情况下,RadioGroup会将子对象按垂直顺序排列,并且现在不能将它们相对于每个other.Right放置,所以我将检查所有的radioButtons。我想要实现的是控制他们的检查状态,这样当一个被选中时(真),其他的被选中状态被自动设置为false。小部件是独立的布局元素,所以我想我必须找到一种将它们组合在一起的方法。我尝试用一个简单的RadioButton if函数编写4个if..else变量,使用isChecked和setChecked内置方法。然后,我尝试将它们分组到一个Radiobutton[]数组中,然后用开关-case循环循环到array.length。毫无办法。现在堆叠两天。任何帮助都很感激。
谢谢你的答复,我进一步解释。我有4个imageViews和4个radioButtons正好低于一个RelativeLayout的父级,这样用户就可以选择他喜欢的图像。imageViews不是垂直放置的,radioButtons也不是垂直放置的。这就是为什么我不想使用radioGroup。我可以使用LinearLayout并将imageViews置于垂直方向,并将radioButtons放在一个组中,就在它们旁边。默认情况下,每个radioButton选中的状态都是假的,并且当我检查它时,它将变为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);
}
}发布于 2015-02-19 13:20:17
https://stackoverflow.com/questions/28607345
复制相似问题