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