33 lines
1.1 KiB
Kotlin
33 lines
1.1 KiB
Kotlin
import android.app.Dialog
|
||
import android.app.TimePickerDialog
|
||
import android.os.Bundle
|
||
import android.text.format.DateFormat
|
||
import android.widget.TimePicker
|
||
import androidx.fragment.app.DialogFragment
|
||
import java.util.Calendar
|
||
|
||
class TimePickerFragment(private val onTimeSelected: (hour: Int, minute: Int) -> Unit) :
|
||
DialogFragment(), TimePickerDialog.OnTimeSetListener {
|
||
|
||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||
// 使用当前时间作为默认值
|
||
val c = Calendar.getInstance()
|
||
val hour = c.get(Calendar.HOUR_OF_DAY)
|
||
val minute = c.get(Calendar.MINUTE)
|
||
|
||
// 创建并返回 TimePickerDialog 实例
|
||
// activity 参数需要可空性处理,this是OnTimeSetListener,最后一个是是否24小时制
|
||
return TimePickerDialog(
|
||
requireActivity(),
|
||
this,
|
||
hour,
|
||
minute,
|
||
DateFormat.is24HourFormat(activity)
|
||
)
|
||
}
|
||
|
||
override fun onTimeSet(view: TimePicker?, hourOfDay: Int, minute: Int) {
|
||
// 当用户设置时间时,通过回调将结果传回
|
||
onTimeSelected(hourOfDay, minute)
|
||
}
|
||
} |