From cf9bc941487df8dfb0780d3e8f1281f4e397b5fa Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期四, 06 三月 2025 10:33:57 +0800
Subject: [PATCH] fix: 3
---
app/src/main/java/com/example/firstapp/ui/reminder/ReminderSettingsFragment.kt | 78 +++++++++++++++++++++++++++++++++------
1 files changed, 66 insertions(+), 12 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..99f23a4 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,31 @@
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.appcompat.app.AppCompatActivity
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 +39,62 @@
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- // 返回按钮点击事件
- binding.btnBack.setOnClickListener {
- findNavController().navigateUp()
- }
+ (activity as AppCompatActivity).supportActionBar?.setDisplayHomeAsUpEnabled(true)
- // 添加提醒按钮点击事件
+ 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