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,
|
container: ViewGroup?,
|
savedInstanceState: Bundle?
|
): View {
|
_binding = FragmentReminderSettingsBinding.inflate(inflater, container, false)
|
return binding.root
|
}
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
super.onViewCreated(view, savedInstanceState)
|
|
(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 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)
|
}
|
}
|
|
override fun onDestroyView() {
|
super.onDestroyView()
|
_binding = null
|
}
|
}
|