Junior — Middle
89
RecyclerView адаптеріндегі onCreateViewHolder және onBindViewHolder әдістерінің айырмашылығы неде?
Сұралған компаниялар
AI-дан жауап
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 данными.