Привязка данных в Anroid RecyclerView не работает (Kotlin)

#android #kotlin #android-databinding #android-jetpack

#Android #котлин #android-привязка данных #android-реактивный ранец

Вопрос:

Вот мой код функции onBindViewHolder:

 override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    val country = countries[position]
    var countryInfoCardBinding = DataBindingUtil.setContentView<CountryInfoCardBinding>(context as Activity, R.layout.country_info_card)
    countryInfoCardBinding.country = country
}
 

А вот мой XML-файл:

https://pastebin.com/PySQFLmv

Комментарии:

1. … и в чем проблема? «Привет, посмотри на мою машину, она не работает».

Ответ №1:

Вы должны раздувать свой объект привязки данных onCreateViewHolder , а не onBindViewHolder . Теперь вы раздуваете объект, который не имеет никакого отношения к вашему представлению, поэтому (я предполагаю) ничего не появляется

 override fun onBindViewHolder(holder: ViewHolder, position: Int) {
    val country = countries[position]
    holder.binding.country = country
}

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
    val binding = CountryInfoCardBinding.inflate(
        LayoutInflater.from(parent.context),
        parent,
        false
    )

    return ViewHolder(binding)
}

inner class ViewHolder(val binding: CountryInfoCardBinding) : RecyclerView.Viewholder(binding.root)