将多个checkbox添加进一个list中,设置监听,当有一个checkbox被选中时,循环list ,将其他checkbox的选中状态设置为false:
</pre><pre name="code" class="java" style="font-size:18px;">private List<CheckBox> boxList;
private CheckBox groupBox;
private CheckBox sortBox;
private CheckBox nearBox;
private CheckBox selectBox;
groupBox = (CheckBox) mView.findViewById(R.id.fragment_shop_group);
sortBox = (CheckBox) mView.findViewById(R.id.fragment_shop_sort);
nearBox = (CheckBox) mView.findViewById(R.id.fragment_shop_near);
selectBox = (CheckBox) mView.findViewById(R.id.fragment_shop_select);
boxList = new ArrayList<CheckBox>();
boxList.add(groupBox);
boxList.add(sortBox);
boxList.add(nearBox);
boxList.add(selectBox);
for (int i = 0; i < boxList.size(); i++) {
boxList.get(i).setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
for (int j = 0; j < boxList.size(); j++) {
boxList.get(j).setChecked(false);
}
buttonView.setChecked(isChecked);
}
}
别忘了要实现这个接口 implements OnCheckedChangeListener