Advertisement
Guest User

adapter

a guest
Mar 30th, 2020
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.95 KB | None | 0 0
  1. package com.the_b.moviecatalogue.adapter
  2.  
  3. import android.content.Intent
  4. import android.view.LayoutInflater
  5. import android.view.View
  6. import android.view.ViewGroup
  7. import android.widget.Toast
  8. import androidx.recyclerview.widget.RecyclerView
  9. import com.bumptech.glide.Glide
  10. import com.the_b.moviecatalogue.R
  11. import com.the_b.moviecatalogue.api.ApiRepository
  12. import com.the_b.moviecatalogue.details.DescTvActivity
  13. import com.the_b.moviecatalogue.model.TvShowModel
  14. import kotlinx.android.synthetic.main.list_item.view.*
  15.  
  16. class TvShowAdapter (private val listTv: MutableList<TvShowModel>): RecyclerView.Adapter<TvShowAdapter.ViewHolder>(){
  17.  
  18.     fun setData(tvShow: List<TvShowModel>){
  19.         listTv.clear()
  20.         listTv.addAll(tvShow)
  21.         notifyDataSetChanged()
  22.     }
  23.  
  24.     private var onItemClickCallback: OnItemClickCallback? = null
  25.  
  26.     fun setOnItemClickCallback(onItemClickCallback: OnItemClickCallback){
  27.         this.onItemClickCallback = onItemClickCallback
  28.     }
  29.  
  30.     inner class ViewHolder(itemView: View): RecyclerView.ViewHolder(itemView)  {
  31.         fun bind(itemTv: TvShowModel){
  32.             with(itemView){
  33.                 Glide.with(context).load(ApiRepository.IMAGE_URL+itemTv.poster_path).into(itemView.imgFilm)
  34.                 itemView.titleFilm.text = itemTv.name
  35.  
  36.                 itemView.setOnClickListener {
  37.                     onItemClickCallback?.onItemClick(itemTv)
  38.                 }
  39.             }
  40.         }
  41.     }
  42.  
  43.     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TvShowAdapter.ViewHolder {
  44.         val view = LayoutInflater.from(parent.context).inflate(R.layout.list_item, parent, false)
  45.         return ViewHolder(view)
  46.     }
  47.  
  48.     override fun getItemCount(): Int = listTv.size
  49.  
  50.     override fun onBindViewHolder(holder: TvShowAdapter.ViewHolder, position: Int) {
  51.         holder.bind(listTv[position])
  52.     }
  53.  
  54.     interface OnItemClickCallback {
  55.         fun onItemClick(data: TvShowModel)
  56.     }
  57.  
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement