From 5fc9567cfa6b6beee4f52a9f835f304865d693e1 Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期四, 10 四月 2025 18:13:58 +0800
Subject: [PATCH] add: 消息提醒后版本

---
 app/src/main/java/com/example/firstapp/adapter/ReminderAdapter.kt |   67 ++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 23 deletions(-)

diff --git a/app/src/main/java/com/example/firstapp/adapter/ReminderAdapter.kt b/app/src/main/java/com/example/firstapp/adapter/ReminderAdapter.kt
index 3a579bc..73979ac 100644
--- a/app/src/main/java/com/example/firstapp/adapter/ReminderAdapter.kt
+++ b/app/src/main/java/com/example/firstapp/adapter/ReminderAdapter.kt
@@ -1,38 +1,59 @@
+package com.example.firstapp.adapter
+
 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
+import com.example.firstapp.database.entity.Reminder
 
-class ReminderAdapter(private val onDelete: (Reminder) -> Unit) :
-    ListAdapter<Reminder, ReminderAdapter.ReminderViewHolder>(ReminderDiffCallback()) {
+class ReminderAdapter(
+    private val onItemClick: (Reminder) -> Unit
+) : ListAdapter<Reminder, ReminderAdapter.ViewHolder>(ReminderDiffCallback()) {
 
-    class ReminderViewHolder(private val binding: ItemReminderBinding) :
-        RecyclerView.ViewHolder(binding.root) {
+    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
+        val binding = ItemReminderBinding.inflate(
+            LayoutInflater.from(parent.context),
+            parent,
+            false
+        )
+        return ViewHolder(binding)
+    }
 
-        fun bind(reminder: Reminder, onDelete: (Reminder) -> Unit) {
-            binding.textNickname.text = reminder.nickname
-            //binding.textKeywords.text = reminder.keywords
-            binding.btnDelete.setOnClickListener { onDelete(reminder) }
+    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+        holder.bind(getItem(position))
+    }
+
+    inner class ViewHolder(
+        private val binding: ItemReminderBinding
+    ) : RecyclerView.ViewHolder(binding.root) {
+
+        init {
+            binding.root.setOnClickListener {
+                val position = bindingAdapterPosition
+                if (position != RecyclerView.NO_POSITION) {
+                    onItemClick(getItem(position))
+                }
+            }
+        }
+
+        fun bind(reminder: Reminder) {
+            binding.categoryNameText.text = reminder.categoryName
+            binding.notificationMethodText.text = when(reminder.notificationMethod) {
+                "PHONE" -> "手机通知"
+                else -> "未设置"
+            }
         }
     }
 
-    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ReminderViewHolder {
-        return ReminderViewHolder(
-            ItemReminderBinding.inflate(
-                LayoutInflater.from(parent.context), parent, false
-            )
-        )
-    }
+    private class ReminderDiffCallback : DiffUtil.ItemCallback<Reminder>() {
+        override fun areItemsTheSame(oldItem: Reminder, newItem: Reminder): Boolean {
+            return oldItem.id == newItem.id
+        }
 
-    override fun onBindViewHolder(holder: ReminderViewHolder, position: Int) {
-        holder.bind(getItem(position), onDelete)
+        override fun areContentsTheSame(oldItem: Reminder, newItem: Reminder): Boolean {
+            return oldItem == newItem
+        }
     }
-}
-
-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
 } 
\ No newline at end of file

--
Gitblit v1.9.3