滚动后选中的复选框在 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
我有一个带有项目列表的回收视图,当我选中一个项目并滚动直到选中的复选框消失,然后再次滚动到它时,复选框变为未选中状态
这是我的适配器代码
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()
.
itemPosition.checked