rifki_cs29

OrganicAdapter

Oct 27th, 2020
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 2.07 KB | None | 0 0
  1. package com.pupukkaltim.leader.adapter
  2.  
  3. import android.view.LayoutInflater
  4. import android.view.View
  5. import android.view.ViewGroup
  6. import androidx.recyclerview.widget.RecyclerView
  7. import com.pupukkaltim.leader.R
  8. import com.pupukkaltim.leader.model.Organic
  9. import com.squareup.picasso.Picasso
  10. import kotlinx.android.synthetic.main.item_row_karyawan.view.*
  11.  
  12. class OrganicAdapter : RecyclerView.Adapter<OrganicAdapter.OrganicViewHolder>() {
  13.     private val listOrganic = ArrayList<Organic>()
  14.     private lateinit var onItemClickCallback: OnItemClickCallback
  15.  
  16.     fun setData(items: ArrayList<Organic>) {
  17.         listOrganic.clear()
  18.         listOrganic.addAll(items)
  19.         notifyDataSetChanged()
  20.     }
  21.  
  22.     override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): OrganicViewHolder {
  23.         val view = LayoutInflater.from(viewGroup.context).inflate(R.layout.item_row_karyawan, viewGroup, false)
  24.         return OrganicViewHolder(view)
  25.     }
  26.  
  27.     override fun getItemCount(): Int = listOrganic.size
  28.  
  29.     override fun onBindViewHolder(holder: OrganicViewHolder, position: Int) {
  30.         holder.bind(listOrganic[position])
  31.     }
  32.  
  33.     inner class OrganicViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView){
  34.         fun bind(organic: Organic) {
  35.             with(itemView){
  36.                 Picasso.get()
  37.                     .load(organic.avatar)
  38.                     .placeholder(R.drawable.ic_baseline_account_circle_24)
  39.                     .error(R.drawable.ic_baseline_account_circle_24)
  40.                     .into(img_photo)
  41.  
  42.                 tv_name_karyawan.text = organic.name
  43.                 tv_npk.text = organic.npk
  44.                 tv_grade.text = organic.grade
  45.  
  46.                 itemView.setOnClickListener{
  47.                     onItemClickCallback.onItemClicked(organic)
  48.                 }
  49.             }
  50.         }
  51.     }
  52.  
  53.     fun setOnItemClickCallback(onItemClickCallback: OnItemClickCallback) {
  54.         this.onItemClickCallback = onItemClickCallback
  55.     }
  56.  
  57.     interface OnItemClickCallback {
  58.         fun onItemClicked(data: Organic)
  59.     }
  60. }
Add Comment
Please, Sign In to add comment