1
tj
2025-02-27 768f1d38c5357e214e6cff018e57ef7bcb64ee60
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
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")
    }
 
}