我有一个recyclerview,其中每个项目都有3个单选按钮,它们被组合在一个单选组中。现在,用户只能在recyclerview中为每个项目选择一个单选按钮。但是我希望用户在整个recyclerview中仅选择一个单选按钮。如何做到这一点?

这是目前的样子。

android - 在回收站 View 中仅选择一个单选按钮-LMLPHP

我想使在整个回收者 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;
        }
    });

10-08 16:41