How to add a datepicker through ViewModel class in MVVM android

Viewed 419

I have a edittext and when I click tthat, I want to show a DatePicker,

This is what I tried but I get an error

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?

class AddProductViewModel (
    private val repository: ProductRepository,
    private val context: Context
): ViewModel(), Observable {
     val myCalendar = Calendar.getInstance()

    var date =
        OnDateSetListener { view, year, monthOfYear, dayOfMonth ->
            myCalendar.set(Calendar.YEAR, year)
            myCalendar.set(Calendar.MONTH, monthOfYear)
            myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth)
            //updateLabel()
        }

    fun showStartDateDatePicker() {
        Toast.makeText(context, "showStartDateDatePicker", Toast.LENGTH_LONG).show()

        DatePickerDialog(
            context, date, myCalendar[Calendar.YEAR], myCalendar[Calendar.MONTH],
            myCalendar[Calendar.DAY_OF_MONTH]
        ).show()
    }
}

Edit text

<EditText
            android:id="@+id/etStartDate"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="36dp"
            android:focusable="false"
            android:ems="10"
            android:inputType="textPersonName"
            android:hint="Start date"
            android:text="@={addProductViewModel.inputStartDate}"
            android:onClick="@{() -> addProductViewModel.showStartDateDatePicker()}"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.497"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/etProductType" />

Request you to suggest where I am getting it wrong

Thanks R

0 Answers
Related