如何为我的时间选择器设置默认时间?
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
}
}
您快到了,只需 将 setHour
和 setMinute
的值 分别更改为您想要的小时和分钟。
我对您的代码做了一些更改以显示默认时间 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)
我的代码中有我的时间选择器,当我按下编辑文本时,它会显示出来,一切看起来都不错,但我想为我的时间选择器设置一个默认时间,这样当用户打开时间选择器时,它将是显示特定时间,如“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
}
}
您快到了,只需 将 setHour
和 setMinute
的值 分别更改为您想要的小时和分钟。
我对您的代码做了一些更改以显示默认时间 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)