Kotlin. Работа с adapter и списком

С помощью retrofit получаю API с сайта. Помещаю данные в data-класс следующего вида:

data class GifFromAPI (
    @SerializedName("data") val data: ArrayList<GifData>
)
data class GifData (
    @SerializedName("images") val images: ImageList
)
data class ImageList (
    @SerializedName("fixed_height") val fixed_height: FixedHeight
)
data class FixedHeight (
    @SerializedName("url") val url: String
)

И хочу вывести в RecyclerView, например, 10 gif элементов (такое количество API получил с сайта). Чтобы добавить на экран gif, обращаюсь к url следующим образом:

gifUri.data[number].images.fixed_height.url

Только не совсем понимаю, где мне этот цикл указать, чтобы пройтись по всем элементам data[number], чтобы это значение увеличивалось? Вот мой адаптер:

class GifAdapter : RecyclerView.Adapter<GifAdapter.GifViewHolder>() {
    var listURI: List<GifFromAPI> = emptyList()
        set(value) {
            field = value
            notifyDataSetChanged()
        }
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GifViewHolder =
        GifViewHolder(ItemGifBinding.inflate(
            LayoutInflater.from(parent.context),
            parent,
            false
        ))

    override fun onBindViewHolder(holder: GifViewHolder, position: Int) {
        holder.bind(listURI[position], 1)
    }

    override fun getItemCount() = listURI.size

    class GifViewHolder(private val binding: ItemGifBinding) : RecyclerView.ViewHolder(binding.root) {
        fun bind(gifUri: GifFromAPI, number: Int) {
            Glide.with(binding.root.context)
                .asGif()
                .load(gifUri.data[number].images.fixed_height.url)
                .into(binding.itemGif)
            binding.itemGifTextInfo.text = gifUri.data[number].id
            Log.v(LOG_VIEW, "${gifUri.data[number].id}")
        }
    }
}

А это фрагмент, где я обращаюсь к adapter.

class GifFragment : Fragment(R.layout.fragment_gifs_list) {
    private lateinit var binding: FragmentGifsListBinding
    private lateinit var viewModelProvider: ViewModelProvider
    private lateinit var loadAdapter: GifAdapter

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        binding = FragmentGifsListBinding.bind(view)
        viewModelProvider = ViewModelProvider(this)
        viewModelProvider.get(GifViewModel::class.java).also {
            it.gifLiveData.observe(viewLifecycleOwner, {data -> showContent(data)})
            it.fetchGif()
        }
        loadAdapter = GifAdapter()
        binding.listGifs.apply {
            adapter = loadAdapter
            layoutManager = LinearLayoutManager(context)
        }

    }

    /**
     * проверка данных, полученных с сайта,
     * в логах смотрел полученные данные
     */
    private fun showContent(gif: GifFromAPI) {
        loadAdapter.listURI = listOf(gif)
        binding.apply {
            for (i in 0..9) {
                Log.v(LOG_VIEW, "This is id ==== ${gif.data[i].id} ////// This is URL ==== ${gif.data[i].url}\n")
                Log.v(LOG_VIEW, "${gif.data.size}")
            }
        }
    }
}

Ответы (0 шт):