滚动后选中的复选框在 recyclerview 中变为未选中状态

checked checkbox become unchecked in recyclerview after scrolling

我有一个带有项目列表的回收视图,当我选中一个项目并滚动直到选中的复选框消失,然后再次滚动到它时,复选框变为未选中状态

这是我的适配器代码

class ContactsAdapter(var list:ArrayList<contact>, private val listener: (contact) -> Unit):RecyclerView.Adapter<ContactsAdapter.viewHolder>() {

    inner class viewHolder(view:View):RecyclerView.ViewHolder(view)
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): viewHolder {
        var view = LayoutInflater.from(parent.context).inflate(R.layout.item_ui, parent, false)
        return viewHolder(view)
    }
    override fun onBindViewHolder(holder: viewHolder, position: Int) {
        var itemPosition = list[position]
        holder.itemView.apply {
            contact_name.text=itemPosition.contactName
            contact_number.text=itemPosition.contactNumber[0]
            check_number.setOnClickListener {
                listener(itemPosition)
            }
            check_number.isChecked = itemPosition.checked
}
    }
    override fun getItemCount(): Int {
       return list.size
    }
}

A RecyclerView 回收了它的行。您的 setOnClickListener() 需要做一些事情来保存选中和未选中的项目,并且您的 onBindViewHolder() 需要在绑定项目时更新 CheckBox。似乎第二部分已经实现,但也许不是第一部分。您可能需要在 setOnClickListener().

的 lambda 中更新 itemPosition.checked