Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
371 of 502 menu
◀ ▶

Класс Adapter

В коде списка пишут наследника RecyclerView.Adapter. На сайте урок назван Adapter и лежит отдельно от папки RecyclerView, но речь о том же базовом классе adapter. Он создаёт ViewHolder, то есть RecyclerView.ViewHolder, в onCreateViewHolder, заполняет данные в onBindViewHolder и возвращает размер в getItemCount.

Синтаксис

class LineAdapter : RecyclerView.Adapter<LineAdapter.Holder>() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): Holder { } override fun onBindViewHolder(holder: Holder, position: Int) { } override fun getItemCount(): Int = 0 }

Методы

Метод Описание
onCreateViewHolder Создаёт ViewHolder и раздувает XML пункта.
onBindViewHolder Подставляет данные в ViewHolder на позиции.
getItemCount Возвращает число пунктов списка.
notifyDataSetChanged Просит RecyclerView перерисовать список.

Пример

Давайте выведем две строки через adapter:

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 }

После setAdapter на RecyclerView на экране появятся строки "abcde" и "12345" из списка items.

Смотрите также

  • класс RecyclerView,
    который показывает пункты adapter
  • класс ViewHolder,
    который хранит View одной строки
  • класс LayoutInflater,
    который раздувает item_line.xml в onCreateViewHolder
  • метод setAdapter,
    который подключает adapter к списку
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить