From 0fce8fea0b83afb02b5d8780160787e87b8ceedb Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期二, 25 二月 2025 08:43:47 +0800
Subject: [PATCH] 新增

---
 app/src/main/java/com/example/firstapp/ui/reminder/ReminderSettingsFragment.kt |   71 ++++++++++++++++++++++++++++++-----
 1 files changed, 61 insertions(+), 10 deletions(-)

diff --git a/app/src/main/java/com/example/firstapp/ui/reminder/ReminderSettingsFragment.kt b/app/src/main/java/com/example/firstapp/ui/reminder/ReminderSettingsFragment.kt
index 4454886..5b26509 100644
--- a/app/src/main/java/com/example/firstapp/ui/reminder/ReminderSettingsFragment.kt
+++ b/app/src/main/java/com/example/firstapp/ui/reminder/ReminderSettingsFragment.kt
@@ -1,18 +1,30 @@
 package com.example.firstapp.ui.reminder
 
+import ReminderAdapter
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.widget.ArrayAdapter
 import android.widget.Toast
 import androidx.fragment.app.Fragment
+import androidx.fragment.app.viewModels
 import androidx.navigation.fragment.findNavController
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.example.firstapp.App
+import com.example.firstapp.database.entity.Reminder
 import com.example.firstapp.databinding.FragmentReminderSettingsBinding
 
 class ReminderSettingsFragment : Fragment() {
 
     private var _binding: FragmentReminderSettingsBinding? = null
     private val binding get() = _binding!!
+
+    private val reminderViewModel: ReminderViewModel by viewModels {
+        ReminderViewModelFactory((requireActivity().application as App).reminderRepository)
+    }
+
+    private lateinit var adapter: ReminderAdapter
 
     override fun onCreateView(
         inflater: LayoutInflater,
@@ -26,21 +38,60 @@
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
 
-        // 返回按钮点击事件
-        binding.btnBack.setOnClickListener {
+        setupSpinner()
+        setupRecyclerView()
+        setupClickListeners()
+        observeReminders()
+    }
+
+    private fun setupSpinner() {
+        val types = arrayOf("驿站", "财务", "其他")
+        val adapter = ArrayAdapter(requireContext(), android.R.layout.simple_spinner_item, types)
+        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
+        binding.spinnerType.adapter = adapter
+    }
+
+    private fun setupRecyclerView() {
+        adapter = ReminderAdapter { reminder ->
+            reminderViewModel.deleteReminder(reminder)
+        }
+        binding.recyclerReminders.apply {
+            layoutManager = LinearLayoutManager(context)
+            this.adapter = this@ReminderSettingsFragment.adapter
+        }
+    }
+
+    private fun setupClickListeners() {
+        binding.btnClose.setOnClickListener {
             findNavController().navigateUp()
         }
 
-        // 添加提醒按钮点击事件
         binding.btnAddReminder.setOnClickListener {
-            val reminderText = binding.editQuickReminder.text.toString()
-            if (reminderText.isNotEmpty()) {
-                // TODO: 保存提醒到数据库
-                Toast.makeText(context, "提醒已添加", Toast.LENGTH_SHORT).show()
-                binding.editQuickReminder.text.clear()
-            } else {
-                Toast.makeText(context, "请输入提醒内容", Toast.LENGTH_SHORT).show()
+            val type = binding.spinnerType.selectedItem.toString()
+            val nickname = binding.editNickname.text.toString()
+            val keywords = binding.editKeywords.text.toString()
+
+            if (nickname.isBlank() || keywords.isBlank()) {
+                Toast.makeText(context, "请填写完整信息", Toast.LENGTH_SHORT).show()
+                return@setOnClickListener
             }
+
+            reminderViewModel.insertReminder(
+                Reminder(
+                    type = type,
+                    nickname = nickname,
+                    keywords = keywords
+                )
+            )
+
+            binding.editNickname.text.clear()
+            binding.editKeywords.text.clear()
+        }
+    }
+
+    private fun observeReminders() {
+        reminderViewModel.allReminders.observe(viewLifecycleOwner) { reminders ->
+            adapter.submitList(reminders)
         }
     }
 

--
Gitblit v1.9.3