Что лежит внутри onBindViewHolder

«Что лежит внутри onBindViewHolder» — вопрос из категории UI и Views, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Внутри onBindViewHolder происходит привязка данных к элементам UI для конкретной позиции в списке. Основные задачи:

  1. Получение данных для позиции (обычно из списка/массива)
  2. Настройка 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)
    }
}

Важно:

  • Не создавайте новые объекты внутри (например, слушатели) – это может вызвать утечки памяти
  • Оптимизируйте операции (кеширование, предварительная загрузка)
  • Учитывайте состояние элементов (например, выделение)