Не удается открыть DatePicker при прикосновении к тексту редактирования - PullRequest
0 голосов
/ 09 июля 2020

У меня есть EditText в моем ConstraintLayout, и я использую MVVM, когда щелкают EditText, я хочу показать DatePicker. но приложение вылетает, и я не вижу никаких ошибок, объясняющих его причину.

Вот мой EditText

<EditText
        android:id="@+id/etStartDate"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="36dp"
        android:ems="10"
        android:inputType="textPersonName"
        android:hint="Start date"
        android:focusableInTouchMode="false"
        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" />

ViewModel

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

    val c = Calendar.getInstance()
    val year = c.get(Calendar.YEAR)
    val month = c.get(Calendar.MONTH)
    val day = c.get(Calendar.DAY_OF_MONTH)

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

        // Display Selected date in textbox
        //lblDate.setText("" + dayOfMonth + " " + MONTHS[monthOfYear] + ", " + year)
        //inputStartDate.value = "" + dayOfMonth + " " + monthOfYear + ", " + year
        Toast.makeText(context, "DatePickerDialog", Toast.LENGTH_LONG).show()

    }, year, month, day)

Пожалуйста, подскажите, где я делаю это неправильно

Спасибо R

Редактировать

Ошибка

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
        at android.view.ViewRootImpl.setView(ViewRootImpl.java:1069)
        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:381)
        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
        at android.app.Dialog.show(Dialog.java:470)
        at com.rao.ixxx.AddProductViewModel.showStartDateDatePicker(AddProductViewModel.kt:46)
        at com.rao.ixxx.AddProductBindingImpl._internalCallbackOnClick(AddProductBindingImpl.java:284)
        at com.rao.ixxx.generated.callback.OnClickListener.onClick(OnClickListener.java:11)
        at android.view.View.performClick(View.java:7348)
        at android.widget.TextView.performClick(TextView.java:14162)
        at android.view.View.performClickInternal(View.java:7314)
        at android.view.View.access$3200(View.java:846)
        at android.view.View$PerformClick.run(View.java:27803)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:214)
        at android.app.ActivityThread.main(ActivityThread.java:7179)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:975)
...