列表中多选按钮互斥

171 阅读1分钟
class Adapter{

private val maps = mutableMapOf<Int, Boolean>()
private var onBind = false
private var checkedPositon = -1


override fun onBindViewHolder(holder:RecyclerViewHolder){


hodler.cb.setOnCheckedChangeListener { buttonView, isChecked ->

  if(isChecked){
    maps.clear()
    maps[position] = true
    checkedPositon = position}else{
    maps.remove(position)

    }else{

       maps.remove(position)
        if (maps.isEmpty()) {
        checkedPositon = -1
        }

      }


if (!onBind) {
    notifyDataSetChanged()
    }


}


onBind = true
holder.cb.isChecked = maps != null && maps.containsKey(position)
onBind = false


}