cloudroam
2025-02-26 b653b90d4598ee2a65bceffa793bb75353b6d186
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import com.example.firstapp.database.entity.Reminder
import com.example.firstapp.databinding.ItemReminderBinding
 
class ReminderAdapter(private val onDelete: (Reminder) -> Unit) :
    ListAdapter<Reminder, ReminderAdapter.ReminderViewHolder>(ReminderDiffCallback()) {
 
    class ReminderViewHolder(private val binding: ItemReminderBinding) :
        RecyclerView.ViewHolder(binding.root) {
 
        fun bind(reminder: Reminder, onDelete: (Reminder) -> Unit) {
            binding.textNickname.text = reminder.nickname
            //binding.textKeywords.text = reminder.keywords
            binding.btnDelete.setOnClickListener { onDelete(reminder) }
        }
    }
 
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ReminderViewHolder {
        return ReminderViewHolder(
            ItemReminderBinding.inflate(
                LayoutInflater.from(parent.context), parent, false
            )
        )
    }
 
    override fun onBindViewHolder(holder: ReminderViewHolder, position: Int) {
        holder.bind(getItem(position), onDelete)
    }
}
 
class ReminderDiffCallback : DiffUtil.ItemCallback<Reminder>() {
    override fun areItemsTheSame(oldItem: Reminder, newItem: Reminder) = oldItem.id == newItem.id
    override fun areContentsTheSame(oldItem: Reminder, newItem: Reminder) = oldItem == newItem