如何为我的时间选择器设置默认时间?

How do I set a default time to my timepicker?

我的代码中有我的时间选择器,当我按下编辑文本时,它会显示出来,一切看起来都不错,但我想为我的时间选择器设置一个默认时间,这样当用户打开时间选择器时,它将是显示特定时间,如“3:34 am”作为用户的默认时间,我该怎么做?。任何帮助将不胜感激。 { 你可以使用 java 和 kotlin}

我的时间选择器

private fun showTimePicker() {
    picker = MaterialTimePicker.Builder()
            .setTimeFormat(TimeFormat.CLOCK_12H)
            .setHour(12)
            .setMinute(0)
            .setTitleText("حدد الموعد الذي تريدة")
            .build()

    picker.show(supportFragmentManager, "AdhanNotifacations")
    picker.addOnPositiveButtonClickListener {
        if (picker.hour > 12) {
            fajrEditTxt.setHint(String.format("%02d", picker.hour - 12) + ":"
                    + String.format("%02d", picker.minute) + " PM")
        } else {
            fajrEditTxt.setHint(String.format("%02d", picker.hour) + ":"
                    + String.format("%02d", picker.minute) + " AM")
        }
        calender = Calendar.getInstance()
        calender[Calendar.HOUR_OF_DAY] = picker.hour
        calender[Calendar.MINUTE] = picker.minute
        calender[Calendar.SECOND] = 0
        calender[Calendar.MILLISECOND] = 0
    }
}

您快到了,只需 setHoursetMinute 的值 分别更改为您想要的小时和分钟。

我对您的代码做了一些更改以显示默认时间 3:34am:

picker = MaterialTimePicker.Builder()
    .setTimeFormat(TimeFormat.CLOCK_12H)
    .setHour(3) //3 hour
    .setMinute(34) //34 minutes, so 3:34am
    .setTitleText("حدد الموعد الذي تريدة")
    .build()

如果您想在 PM 中显示小时,只需 在小时上加上 12。例如:

setHour(15)// will show 3pm

如果您有任何问题,请告诉我。谢谢。

编辑

如果您想以 strict HH:MM 格式显示时间,您可以保留您的代码并保持原样。但是如果你不想严格,那么使用下面的代码:

例如,这将显示 9:3PM 而不是 09:03PM

//removed unnecesarry String.format
if(picker.hour > 12){
    fajrEditTxt.setHint((picker.hour - 12).toString() + ":" + (picker.minute).toString() + " PM")
}else{
    fajrEditTxt.setHint((picker.hour).toString() + ":" + (picker.minute).toString() + " AM")
}

OP问如何访问时间:

val time = if(picker.hour > 12){
    String.format("%02d",picker.hour - 12) + ":" + String.format("%02d", picker.minute) + " PM"
}else{
    String.format("%02d",picker.hour) + ":" + String.format("%02d", picker.minute) + " AM"
}
time //use time, its in HH:MM format
fajrEditTxt.setHint(time)