我已使用此依赖项实现“com.wdullaer:materialdatetimepicker:4.2.3”用于时间选择器对话框。 如何禁用过去时间,但在日期选择器中选择当前日期时,但当用户选择未来日期时,以便用户可以选择任何时间。 我已经完成了这段代码,但我不明白如何应用时间检查,因此用户在选择当前日期时无法选择过去的时间,而用户可以在选择未来日期时选择任何时间。
val cal = Calendar.getInstance()
val tpd = TimePickerDialog.newInstance(
{ view, hourOfDay, minute, second ->
if (cal.getTimeInMillis() >= cal.getTimeInMillis()) {
//it's after current
val hour = hourOfDay % 12
binding.editChooseTime.setText(
java.lang.String.format(
"%02d:%02d %s", if (hour == 0) 12 else hour,
minute, if (hourOfDay < 12) "AM" else "PM"
)
)
getTime= hourOfDay.toString() +":"+minute+":"+second
} else {
Toast.makeText(applicationContext, "Invalid Time", Toast.LENGTH_LONG).show()
}
},
cal.get(Calendar.HOUR_OF_DAY),
cal.get(Calendar.MINUTE),
true
)
tpd.setMinTime(cal.get(Calendar.HOUR_OF_DAY),cal.get(Calendar.MINUTE),
cal.get(Calendar.SECOND)) // MIN: hours, minute, secconds
tpd.show(supportFragmentManager, "TimePickerDialog")
}
在 Kotlin 中使用 CalanderView
然后使用它的inbuild函数
“addDecorator()”
实现如..(JAVA)
binding.calendarView.addDecorator(new DayViewDecorator() {
@Override
public boolean shouldDecorate(CalendarDay day) {
return day.isBefore(CalendarDay.today()); // Disable Days Before Today.
}
@Override
public void decorate(DayViewFacade view) {
view.setDaysDisabled(true);
}
});
完成。☻♥ 玩得开心..