Что вам нужно сделать, это передать созданный объект класса привязки в конструктор класса держателя. В приведенном ниже примере у меня есть файл row_payment
XML для элемента RecyclerView
, а сгенерированный класс - RowPaymentBinding
, так что
class PaymentAdapter(private val paymentList: List<PaymentBean>) : RecyclerView.Adapter<PaymentAdapter.PaymentHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PaymentHolder {
val itemBinding = RowPaymentBinding.inflate(LayoutInflater.from(parent.context), parent, false)
return PaymentHolder(itemBinding)
}
override fun onBindViewHolder(holder: PaymentHolder, position: Int) {
val paymentBean: PaymentBean = paymentList[position]
holder.bind(paymentBean)
}
override fun getItemCount(): Int = paymentList.size
class PaymentHolder(private val itemBinding: RowPaymentBinding) : RecyclerView.ViewHolder(itemBinding.root) {
fun bind(paymentBean: PaymentBean) {
itemBinding.tvPaymentInvoiceNumber.text = paymentBean.invoiceNumber
itemBinding.tvPaymentAmount.text = paymentBean.totalAmount
}
}
}
Кроме того, убедитесь, что вы передаете представление root родительский класс держателя вида, подобный этому * RecyclerView.ViewHolder(itemBinding.root)
*, получая доступ к переданному объекту класса привязки.