From 1a281d8354622a3606360f9f9a7fe4bb7d6a2c3a Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期日, 27 四月 2025 13:22:26 +0800
Subject: [PATCH] fix 短信
---
app/src/main/java/com/example/firstapp/adapter/ReminderAdapter.kt | 68 ++++++++++++++++++++++------------
1 files changed, 44 insertions(+), 24 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 fb4335b..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,39 +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.sun.mail.imap.protocol.FetchResponse.getItem
+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