package com.example.firstapp.ui.reminderOther
|
|
import android.app.DatePickerDialog
|
import android.app.TimePickerDialog
|
import androidx.fragment.app.viewModels
|
import android.os.Bundle
|
import androidx.fragment.app.Fragment
|
import android.view.LayoutInflater
|
import android.view.View
|
import android.view.ViewGroup
|
import android.widget.ArrayAdapter
|
import android.widget.EditText
|
import android.widget.NumberPicker
|
import android.widget.Spinner
|
import android.widget.TextView
|
import android.widget.Toast
|
import com.bigkoo.pickerview.adapter.ArrayWheelAdapter
|
import com.contrarywind.view.WheelView
|
import com.example.firstapp.R
|
import com.example.firstapp.utils.Log
|
import com.itheima.wheelpicker.WheelPicker
|
import java.util.Calendar
|
|
class ReminderSettingsFragmentOtherAdd : Fragment() {
|
|
|
private lateinit var etDate: EditText
|
private lateinit var etTime: EditText // 用于显示选择的时间
|
|
private lateinit var textViewSelected: TextView
|
|
|
companion object {
|
fun newInstance() = ReminderSettingsFragmentOtherAdd()
|
}
|
|
private val viewModel: ReminderSettingsFragmentOtherAddViewModel by viewModels()
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
|
// TODO: Use the ViewModel
|
}
|
|
override fun onCreateView(
|
inflater: LayoutInflater, container: ViewGroup?,
|
savedInstanceState: Bundle?
|
): View {
|
val rootView = inflater.inflate(
|
R.layout.fragment_reminder_settings_fragment_other_add,
|
container,
|
false
|
)
|
// Initialize Spinner
|
val dayTypeSpinner: Spinner = rootView.findViewById(R.id.sp_day_type)
|
|
// Set up ArrayAdapter for Spinner
|
val adapter = ArrayAdapter.createFromResource(
|
requireContext(),
|
R.array.day_types, // This should match the array in strings.xml
|
android.R.layout.simple_spinner_item
|
)
|
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
|
dayTypeSpinner.adapter = adapter
|
|
|
// 初始化日期控件
|
etDate = rootView.findViewById(R.id.et_date)
|
// 设置点击事件来显示日期选择器
|
etDate.setOnClickListener {
|
// 获取当前日期
|
val calendar = Calendar.getInstance()
|
val year = calendar.get(Calendar.YEAR)
|
val month = calendar.get(Calendar.MONTH)
|
val dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH)
|
|
// 创建 DatePickerDialog
|
val datePickerDialog = DatePickerDialog(
|
requireContext(),
|
DatePickerDialog.OnDateSetListener { view, selectedYear, selectedMonth, selectedDayOfMonth ->
|
// 设置选中的日期到 EditText
|
etDate.setText("$selectedYear-${selectedMonth + 1}-$selectedDayOfMonth")
|
},
|
year, month, dayOfMonth
|
)
|
|
// 显示 DatePickerDialog
|
datePickerDialog.show()
|
}
|
|
|
// 添加重复周期按钮
|
textViewSelected = rootView.findViewById(R.id.tv_selected_cycle)
|
val tvRepeatCycle: TextView = rootView.findViewById(R.id.tv_repeat_cycle)
|
tvRepeatCycle.setOnClickListener {
|
showRepeatCycleBottomSheet()
|
}
|
|
// 初始化 etTime
|
etTime = rootView.findViewById(R.id.et_time)
|
// 设置点击事件来显示时间选择器
|
etTime.setOnClickListener {
|
showTimePickerBottomSheet()
|
}
|
|
return rootView;
|
}
|
|
private fun showRepeatCycleBottomSheet() {
|
val repeatCycleBottomSheetFragment = RepeatCycleDialogFragment()
|
|
// 显式实现 OnCycleSelectedListener 接口
|
repeatCycleBottomSheetFragment.setOnCycleSelectedListener(object : RepeatCycleDialogFragment.OnCycleSelectedListener {
|
override fun onCycleSelected(every: String, interval: String, unit: String) {
|
val formattedCycle = "$every $interval $unit"
|
// 这里可以将选择的重复周期显示在某个 TextView 或其他控件中
|
textViewSelected.text = "重复周期: $formattedCycle"
|
}
|
})
|
|
repeatCycleBottomSheetFragment.show(childFragmentManager, "RepeatCycleBottomSheetFragment")
|
}
|
|
|
private fun showTimePickerBottomSheet() {
|
val timePickerBottomSheetFragment = TimePickerBottomSheetFragment()
|
|
// 显式实现 OnTimeSelectedListener 接口
|
timePickerBottomSheetFragment.setOnTimeSelectedListener(object : TimePickerBottomSheetFragment.OnTimeSelectedListener {
|
override fun onTimeSelected(hour: Int, minute: Int, second: Int) {
|
val formattedTime = String.format("%02d:%02d:%02d", hour, minute, second)
|
etTime.setText(formattedTime)
|
}
|
})
|
|
timePickerBottomSheetFragment.show(childFragmentManager, "TimePickerBottomSheetFragment")
|
}
|
|
}
|