Edittext показывает только текущую дату, выбирая другие даты - PullRequest
0 голосов
/ 09 ноября 2019

Я пытаюсь открыть средство выбора даты после нажатия на editext, чего я достиг, но я сталкиваюсь с проблемой, что каждый раз, когда я выбираю дату, settext () получает только текущую дату. Не предыдущие даты.

Я достиг даты начала выбора. также в моем необходимом формате. успешно выполненная проверка для 18 лет старше возраста

etDob.setOnClickListener {
    val calendar = Calendar.getInstance()
    val year = calendar.get(Calendar.YEAR)
    val month = calendar.get(Calendar.MONTH)
    val day = calendar.get(Calendar.DAY_OF_MONTH)


    val dpd = DatePickerDialog(this, DatePickerDialog.OnDateSetListener { view, year, monthOfYear, dayOfMonth ->
        val myFormat: String = "MM/dd/yyyy"

        val sdf = SimpleDateFormat(myFormat, Locale.US)
        val dob = sdf.format(calendar.getTime())
        etDob!!.setText(dob)

        val userAge = GregorianCalendar(year, month, day)

        val minAdultAge = GregorianCalendar()
        minAdultAge.add(Calendar.YEAR, -18)
        if (minAdultAge.before(userAge)) {
            Toast.makeText(this, "18 year", Toast.LENGTH_SHORT).show()
        }
    }, year, month, day)
    dpd.datePicker.maxDate = Calendar.getInstance().timeInMillis
    dpd.show()

etDob - мой текст редактирования, где я открываю и задаю возраст пользователя, но каждый раз, когда я выбираю значение, я получаю текущую дату.

1 Ответ

0 голосов
/ 09 ноября 2019

Вы должны установить свой календарь на Date Set

calendar.set(Calendar.YEAR, year)
calendar.set(Calendar.MONTH, monthOfYear)
calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth)

Таким образом, ваш код должен быть как -

val dpd = DatePickerDialog(this, DatePickerDialog.OnDateSetListener { view, year, monthOfYear, dayOfMonth ->

calendar.set(Calendar.YEAR, year)
calendar.set(Calendar.MONTH, monthOfYear)
calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth)
val myFormat: String = "MM/dd/yyyy"

val sdf = SimpleDateFormat(myFormat, Locale.US)
val dob = sdf.format(calendar.getTime())
}
...