Метод onBindViewHolder
Метод onBindViewHolder
у
RecyclerView.Adapter
вызывается для каждой видимой позиции.
Параметр position
- индекс пункта от 0
до
getItemCount minus one.
Сюда пишут
setText
и другие обновления View в Holder.
Синтаксис
override fun onBindViewHolder(holder: Holder, position: Int) {
holder.label.text = items[position]
}
Параметры
| Параметр | Описание |
|---|---|
holder |
ViewHolder
с View пункта.
|
position |
Индекс пункта в данных adapter. |
Пример
Давайте покажем строки abcde и 12345 в списке:
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
class LineAdapter(private val items: List<String>) :
RecyclerView.Adapter<LineAdapter.Holder>() {
class Holder(view: View) : RecyclerView.ViewHolder(view) {
val label: TextView = view.findViewById(R.id.label)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder {
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_line, parent, false)
return Holder(view)
}
override fun onBindViewHolder(holder: Holder, position: Int) {
holder.label.text = items[position]
}
override fun getItemCount(): Int = items.size
}
На экране первый пункт покажет "abcde",
второй - "12345".
Смотрите также
-
метод
onCreateViewHolder,
который создаёт holder до bind -
метод
getItemCount,
который задаёт число позиций -
метод
setText,
которым меняют текст в holder -
класс
RecyclerView,
который вызывает onBindViewHolder при прокрутке