| | |
| | | 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, |
| | |
| | | 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) |
| | | } |
| | | } |
| | | |