如何在 TimePickerDilog kotlin 中禁用过去时间

问题描述 投票:0回答:1

我已使用此依赖项实现“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")
    }
android datetime kotlin
1个回答
0
投票

在 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);
        }
    });

完成。☻♥ 玩得开心..

© www.soinside.com 2019 - 2024. All rights reserved.