Obtenga una date de un DatePickerDialog en Kotlin Android

El siguiente fragment de código 'funciona' en el sentido de que actualiza el statusDateID correctamente. el problema que estoy teniendo es que aunque establece el statusDateID correctamente, la date no persistirá, y cuando actualizo mh.entryDate siempre es la date actual.

¿Cómo obtengo la date fuera del dialog? para que pueda actualizar mh.entryDate con la date elegida, no con la date actual.

Gracias por tu time.

fun changeDate(view: View) { var date: Calendar = Calendar.getInstance() var thisAYear = date.get(Calendar.YEAR).toInt() var thisAMonth = date.get(Calendar.MONTH).toInt() var thisADay = date.get(Calendar.DAY_OF_MONTH).toInt() val dpd = DatePickerDialog(this, DatePickerDialog.OnDateSetListener { view2, thisYear, thisMonth, thisDay -> // Display Selected date in textbox thisAMonth = thisMonth + 1 thisADay = thisDay thisAYear = thisYear statusDateID.setText("Date: " + thisAMonth + "/" + thisDay + "/" + thisYear) val newDate:Calendar =Calendar.getInstance() newDate.set(thisYear, thisMonth, thisDay) }, thisAYear, thisAMonth, thisADay) dpd.show() mh.entryDate = date.timeInMillis println("DATE DATA: "+thisAYear+ " "+thisAMonth+" " + thisADay) println("DATE CHANGED MILLISECS = "+mh.entryDate) } 

mh.entryDate se define como global y como LONG. Con las instrucciones println de debugging, tanto DATE DATA como DATE CHANGED MILLISECS muestran la date actual.

Simplemente configure la date dentro del método DatePickerDialog.OnDateSetListener con mh.entryDate = newDate.timeInMillis

 val dpd = DatePickerDialog(this, DatePickerDialog.OnDateSetListener { view2, thisYear, thisMonth, thisDay -> // Display Selected date in textbox thisAMonth = thisMonth + 1 thisADay = thisDay thisAYear = thisYear statusDateID.setText("Date: " + thisAMonth + "/" + thisDay + "/" + thisYear) val newDate:Calendar =Calendar.getInstance() newDate.set(thisYear, thisMonth, thisDay) mh.entryDate = newDate.timeInMillis // setting new date }, thisAYear, thisAMonth, thisADay) dpd.show() 

Está instanciando el object de date como una nueva instancia de Calendario, pero no lo está actualizando con la date del selector. date se crea, se consulta, pero nunca se actualiza.

  • ¿Qué significa Array <T?>
  • Kotlin y la confusión de generics
  • Kotlin Android, Spinner setSelection no resuelto
  • Al utilizar tanto publishOn como subscribeOn en un flujo, no ocurre nada
  • ¿Cómo crear una promise de kotlin.js.Promise nested?
  • Kotlin "fuera" y "en" y generics - uso correcto
  • ¿Cómo cambio el text del button y la function en Android?
  • Android: no se puede agregar el jar creado en java8 con kotlin
  • Campos públicos para compatibilidad con Java
  • Posición de la label `@` en Kotlin cuando se denota el receptor con `this`
  • Convertir cadena obtenida de edittext a Integer en lenguaje Kotlin