package com.example.adapter1
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
class AnimalAdapter(
private val onItemClick: (Int) -> Unit
) : RecyclerView.Adapter<AnimalAdapter.AnimalViewHolder>() {
private val TAG = "ANIMAL_ADAPTER"
inner class AnimalViewHolder(view: View) : RecyclerView.ViewHolder(view) {
val textAnimal: TextView = view.findViewById(R.id.textAnimal)
init {
view.setOnClickListener {
val pos = bindingAdapterPosition
if (pos != RecyclerView.NO_POSITION) {
onItemClick(pos) // tell Activity which item was clicked
}
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AnimalViewHolder {
Log.d(TAG, "onCreateViewHolder: creating view holder")
val view = LayoutInflater.from(parent.context)
.inflate(R.layout.item_animal, parent, false)
return AnimalViewHolder(view)
}
override fun onBindViewHolder(holder: AnimalViewHolder, position: Int) {
val animals = AnimalRepository.animals
Log.d(TAG, "onBindViewHolder: binding $position = ${animals[position]}")
holder.textAnimal.text = animals[position]
}
override fun getItemCount(): Int {
val count = AnimalRepository.animals.size
Log.d(TAG, "getItemCount: $count items")
return count
}
}