我有一個包含專案串列的回收視圖,當我檢查一個專案并滾動直到選中的復選框消失,然后再次滾動到它時,復選框變為未選中狀態。
這是我的配接器代碼
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
}
}
uj5u.com熱心網友回復:
ARecyclerView回收其行。你setOnClickListener()需要做一些事情來保持哪些專案被選中和取消,并且你onBindViewHolder()需要CheckBox在它系結一個專案時更新。似乎第二部分已實作,但可能不是第一部分。您可能需要itemPosition.checked在 lambda 中更新setOnClickListener().
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/345172.html
標籤:安卓 科特林 android-recyclerview 安卓适配器 android-复选框
上一篇:java.lang.ExceptionInInitializerError:在minecraftkotlin插件中為null
