Geen omschrijving

FlowerAdapter.kt 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package com.example.floradex20
  2. import android.util.Log
  3. import android.view.LayoutInflater
  4. import android.view.View
  5. import android.view.ViewGroup
  6. import android.widget.ImageView
  7. import android.widget.TextView
  8. import androidx.recyclerview.widget.RecyclerView
  9. import com.squareup.picasso.Picasso
  10. class FlowerAdapter(val flowers: List<Data>, private val listener: OnItemClickListener): RecyclerView.Adapter<FlowerAdapter.PlantViewHolder>() {
  11. // var listen: onItemClickListener
  12. // this.listen = listener
  13. // val listen:OnItemClickListener = listener
  14. override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PlantViewHolder {
  15. val view = LayoutInflater.from(parent.context).inflate(R.layout.layout, parent, false)
  16. return PlantViewHolder(view)
  17. }
  18. override fun getItemCount(): Int {
  19. return flowers.size
  20. }
  21. override fun onBindViewHolder(holder: PlantViewHolder, position: Int) {
  22. return holder.bind(flowers[position], holder)
  23. }
  24. inner class PlantViewHolder(itemView : View): RecyclerView.ViewHolder(itemView), View.OnClickListener {
  25. val photo: ImageView = itemView.findViewById(R.id.flower_photo)
  26. private val title: TextView = itemView.findViewById(R.id.flower_name)
  27. init {
  28. photo.setOnClickListener(this)
  29. }
  30. override fun onClick(view: View?) {
  31. val position = adapterPosition
  32. if (position != RecyclerView.NO_POSITION) {
  33. listener.onItemClick(position)
  34. }
  35. }
  36. fun bind(plant: Data, plantviewer: PlantViewHolder) {
  37. //Pone foto y nombre de la planta a la tarjeta
  38. val imageurl: String = plant.image_url
  39. Picasso.get().load(imageurl).into(photo)
  40. //Nombre de la planta
  41. title.text = "Name: " + plant.common_name
  42. }
  43. }
  44. public interface OnItemClickListener {
  45. //Metodo que va a usar el activity pa hacer cosas
  46. fun onItemClick(position: Int)
  47. }
  48. }