Sobes.tech
Назад к вопросам
Junior — Middle
75

Объясните, чем отличаются методы onCreateViewHolder и onBindViewHolder в адаптере RecyclerView?

Компании, где спрашивали
Мой СкладМой Склад

Ответ от нейросети

sobes.tech AI

В адаптере RecyclerView методы onCreateViewHolder и onBindViewHolder выполняют разные задачи:

  • onCreateViewHolder вызывается, когда нужно создать новый объект ViewHolder. Здесь происходит "надувание" (inflate) layout-файла элемента списка и создание ViewHolder, который хранит ссылки на нужные View внутри этого элемента.

  • onBindViewHolder вызывается для привязки данных к уже созданному ViewHolder. В этом методе вы заполняете элементы интерфейса конкретными данными из вашего набора данных по позиции.

Пример:

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
    val view = LayoutInflater.from(parent.context).inflate(R.layout.item_layout, parent, false)
    return MyViewHolder(view)
}

override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
    val item = dataList[position]
    holder.textView.text = item.name
}

Таким образом, onCreateViewHolder отвечает за создание View, а onBindViewHolder — за заполнение View данными.