cloudroam
2025-02-25 0fce8fea0b83afb02b5d8780160787e87b8ceedb
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)
        }
    }