From 1097c45d8d6aa4b74a50e8d9a99dedab73f2bbad Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期五, 28 二月 2025 13:35:07 +0800 Subject: [PATCH] add: 优化首页自动同步历史短信,和实时刷新包裹列表 --- 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