Ответ
Внутри onBindViewHolder происходит привязка данных к элементам UI для конкретной позиции в списке. Основные задачи:
- Получение данных для позиции (обычно из списка/массива)
- Настройка ViewHolder (установка текста, изображений, обработчиков кликов)
Пример:
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val item = items[position]
holder.title.text = item.title
holder.icon.setImageResource(item.iconRes)
holder.itemView.setOnClickListener {
listener.onItemClick(item)
}
}
Важно:
- Не создавайте новые объекты внутри (например, слушатели) – это может вызвать утечки памяти
- Оптимизируйте операции (кеширование, предварительная загрузка)
- Учитывайте состояние элементов (например, выделение)