package com.example.firstapp.ui.reminderOther
|
|
import android.os.Bundle
|
import android.view.LayoutInflater
|
import android.view.View
|
import android.view.ViewGroup
|
import com.bigkoo.pickerview.adapter.ArrayWheelAdapter
|
import com.contrarywind.view.WheelView
|
import com.example.firstapp.R
|
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
|
class TimePickerBottomSheetFragment : BottomSheetDialogFragment() {
|
|
private lateinit var wheelHour: WheelView
|
private lateinit var wheelMinute: WheelView
|
private lateinit var wheelSecond: WheelView
|
|
private var listener: OnTimeSelectedListener? = null
|
|
interface OnTimeSelectedListener {
|
fun onTimeSelected(hour: Int, minute: Int, second: Int)
|
}
|
|
fun setOnTimeSelectedListener(listener: OnTimeSelectedListener) {
|
this.listener = listener
|
}
|
|
override fun onCreateView(
|
inflater: LayoutInflater, container: ViewGroup?,
|
savedInstanceState: Bundle?
|
): View? {
|
val view = inflater.inflate(R.layout.fragment_time_picker_bottom_sheet_list_dialog, container, false)
|
|
wheelHour = view.findViewById(R.id.wheelHour2)
|
wheelMinute = view.findViewById(R.id.wheelMinute2)
|
wheelSecond = view.findViewById(R.id.wheelSecond2)
|
|
// 设置小时数据源
|
val hours = (0..23).map { it.toString() }
|
val hourAdapter = ArrayWheelAdapter(hours)
|
wheelHour.setAdapter(hourAdapter)
|
wheelHour.currentItem = 0
|
|
// 设置分钟数据源
|
val minutes = (0..59).map { it.toString().padStart(2, '0') }
|
val minuteAdapter = ArrayWheelAdapter(minutes)
|
wheelMinute.setAdapter(minuteAdapter)
|
wheelMinute.currentItem = 0
|
|
// 设置秒数据源
|
val seconds = (0..59).map { it.toString().padStart(2, '0') }
|
val secondAdapter = ArrayWheelAdapter(seconds)
|
wheelSecond.setAdapter(secondAdapter)
|
wheelSecond.currentItem = 0
|
|
// 设置确认按钮
|
view.findViewById<View>(R.id.btn_confirm2).setOnClickListener {
|
val selectedHour = wheelHour.currentItem
|
val selectedMinute = wheelMinute.currentItem
|
val selectedSecond = wheelSecond.currentItem
|
listener?.onTimeSelected(selectedHour, selectedMinute, selectedSecond)
|
dismiss()
|
}
|
|
// 设置取消按钮
|
view.findViewById<View>(R.id.btn_cancel2).setOnClickListener {
|
dismiss()
|
}
|
|
return view
|
}
|
}
|