我有一个recyclerview,其中每个项目都有3个单选按钮,它们被组合在一个单选组中。现在,用户只能在recyclerview中为每个项目选择一个单选按钮。但是我希望用户在整个recyclerview中仅选择一个单选按钮。如何做到这一点?
这是目前的样子。
我想使在整个回收者 View 中仅检查1个单选按钮成为可能。如果选中了第一个项目中的第一个单选按钮,然后用户单击了第二个项目中的第二个单选按钮,则应该取消选中第一个项目中的第一个单选按钮。
最佳答案
这是执行相同操作的另一种方法。这比我以前的回答更优雅。但是我保留了两者,因为先前的答案提供了更大的灵活性。
private RadioButton lastCheckedRB = null;
...
@Override
public void onBindViewHolder(final CoachListViewHolder holder, final int position) {
holder.priceRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
RadioButton checked_rb = (RadioButton) group.findViewById(checkedId);
if (lastCheckedRB != null) {
lastCheckedRB.setChecked(false);
}
//store the clicked radiobutton
lastCheckedRB = checked_rb;
}
});