小白一个,之前写单选总是先遍历list,将所有item设置为false,再将新点击的设置为true,今天写单选功能时,突然觉得可以优化一下,于是有了以下代码,不知道有没有什么不足之处,大佬们帮忙指点一下
/**
* 列表单选
*
* @param position
*/
private int lastTimeCheckPosition = -1;//上次选中的item
private void singleChoice(int position) {
if (list.get(position).isCheck()) return;
if (lastTimeCheckPosition != -1) {
//上次选中被记录
list.get(lastTimeCheckPosition).setCheck(false);
adapter.notifyItemChanged(lastTimeCheckPosition);
} else {
//上次选中未记录,循环找出选中item改为未选中
for (int i = 0; i < list.size(); i++) {
if (list.get(i).isCheck()) {
list.get(i).setCheck(false);
adapter.notifyItemChanged(i);
break;
}
}
}
list.get(position).setCheck(true);
adapter.notifyItemChanged(position);
//记录item
lastTimeCheckPosition = position;
}