Skip to content

Instantly share code, notes, and snippets.

@jafar260698
Created December 1, 2020 04:44
Show Gist options
  • Save jafar260698/da8a9d9f2db9b94b646f50cb722f749e to your computer and use it in GitHub Desktop.
Save jafar260698/da8a9d9f2db9b94b646f50cb722f749e to your computer and use it in GitHub Desktop.
package com.example.myapplication.adapters
import android.content.Context
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.annotation.NonNull
import androidx.recyclerview.widget.AsyncListDiffer
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.RecyclerView
import com.example.myapplication.R
import com.example.myapplication.databinding.ItemPeopleBinding
import com.example.myapplication.db.entity.Peoples
class PeopleAdapter : RecyclerView.Adapter<PeopleAdapter.PeopleViewHolder>(){
private val differCallback: DiffUtil.ItemCallback<Peoples> = object : DiffUtil.ItemCallback<Peoples>() {
override fun areItemsTheSame(@NonNull oldItem: Peoples, @NonNull newItem: Peoples): Boolean {
return oldItem.id == newItem.id
}
override fun areContentsTheSame(@NonNull oldItem: Peoples, @NonNull newItem: Peoples): Boolean {
return oldItem == newItem
}
}
val differ = AsyncListDiffer(this, differCallback)
inner class PeopleViewHolder(val binding:ItemPeopleBinding):RecyclerView.ViewHolder(binding.root){
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): PeopleAdapter.PeopleViewHolder {
val binding=ItemPeopleBinding.inflate(
LayoutInflater.from(parent.context),parent,false)
return PeopleViewHolder(binding)
}
override fun getItemCount(): Int {
return differ.currentList.size
}
private var onItemClickListener: ((Peoples) -> Unit)? = null
override fun onBindViewHolder(holder: PeopleAdapter.PeopleViewHolder, position: Int) {
val peoples=differ.currentList[position]
with(holder){
with(peoples){
binding.namePeople.text=name
binding.tag.text=phone
}
}
}
fun setOnItemClickListener(listener: (Peoples) -> Unit) {
onItemClickListener = listener
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment