Search code examples
androidandroid-datepicker

how can set max date in date picker kotlin android


how can set max date in date picker Kotlin android

how can set current date in max date so user cannot enter future date

val date =
        OnDateSetListener { view, year, monthOfYear, dayOfMonth ->
            myCalendar.set(Calendar.YEAR, year)
            myCalendar.set(Calendar.MONTH, monthOfYear)
            myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth)
            dob.set(year,monthOfYear,dayOfMonth)
            var age = today[Calendar.YEAR] - dob[Calendar.YEAR]
            if (today[Calendar.DAY_OF_YEAR] < dob[Calendar.DAY_OF_YEAR]) {
                age--
            }
            val ageInt = age
            val ageS = ageInt.toString()
            ("Age  : $ageS").also { binding.ageText.text = it }
            updateLabel()
        }
    binding.edtBirthdate.setOnClickListener {
        context?.let { it1 ->
            DatePickerDialog(
                it1, date, myCalendar[Calendar.YEAR],
                myCalendar[Calendar.MONTH],
                myCalendar[Calendar.DAY_OF_MONTH]
            )
                .show()
        }
    }

Solution

  • In Kotlin, you can do something like

    DatePickerDialog(
        it1, date, myCalendar[Calendar.YEAR],
        myCalendar[Calendar.MONTH],
        myCalendar[Calendar.DAY_OF_MONTH]
    )
        .apply { datePicker.maxDate = Date().time }
        .show()