android - 如何为 Material 日期选择器设置最小或最大日期

标签 android kotlin

我正在使用谷歌 Material DatePicker,我想为它自己的选择器设置最小和最大日期!
这是我的代码

private fun getDatPikr(tv: MaterialTextView, title: String, pastDays: Boolean = false) {
        val datePicker = MaterialDatePicker.Builder.datePicker()
                .setTitleText(title)
                .build()
        
        datePicker.show(childFragmentManager, "MATERIAL_DATE_PICKER")
        datePicker.addOnPositiveButtonClickListener {
            val calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC"))
            calendar.time = Date(it)
            val date = "${calendar.get(Calendar.DAY_OF_MONTH)}/ " +
                    "${calendar.get(Calendar.MONTH) + 1}/${calendar.get(Calendar.YEAR)}"
            tv.text = date
        }
    }

最佳答案

根据新的 Material 日期选择器,我们可以通过在日历约束中传递 setValidator() 来设置结束日期。

val constraintsBuilder=CalendarConstraints.Builder()
            .setValidator(DateValidatorPointBackward.now())
这样用户只能选择从今天或任何日期开始的向后日期。

关于android - 如何为 Material 日期选择器设置最小或最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66101672/

相关文章:

android - setImageResource(int) 在 setBackgroundTintColorList(ColorStateList) FloatingActionButton 之后不起作用

java - Kotlin 获取类型为字符串

java - 需要在Java类中使用此方法( Kotlin )

android - 如何通过框架API或任何其他有效方法查找VPN连接状态?

java - SharedPreferences 在使用前不断被删除

javascript - 从 React Native Android 原生地执行 JavaScript 代码

使用泛型进行 Java 和 Kotlin 转换。失去类型安全

android 数据库已经关闭 onResume

android - 适用于 Android 的 Kotlin 扩展 : How to use bundleOf

Android EditText 错误消息弹出文本未显示