Назад к вопросам
Мой Склад
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 данными.