Без опису

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