Android DatePickerDialog не работает на Android 5 - PullRequest
0 голосов
/ 25 марта 2020

Я работаю над приложением, над формой регистрации, пользователь должен указать свой день рождения. Я использовал DatePickerDialog. Приложение отлично работает на моем телефоне и на эмуляторе, но когда я тестировал его на старом телефоне (android 5), приложение перестало работать, когда я хочу выбрать дату.

Это мой код XML

<com.google.android.material.textfield.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Date"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        app:boxStrokeColor="@color/colorPrimary"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/editText1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:focusableInTouchMode="false"
            android:onClick="BirthDatePicker"
            />
    </com.google.android.material.textfield.TextInputLayout>

Это мой java код

public void BirthDatePicker(View v) throws ParseException {
  final DatePickerDialog[] picker = new DatePickerDialog[1];
    final TextInputEditText eText;
    eText= findViewById(R.id.editText1);
    //eText.setInputType(InputType.TYPE_NULL);
    final Calendar cldr = Calendar.getInstance();
    int day = cldr.get(Calendar.DAY_OF_MONTH);
    int month = cldr.get(Calendar.MONTH);
    int year = cldr.get(Calendar.YEAR);
    // date picker dialog  DatePickerDialog.OnDateSetListener listener
    picker[0] = new DatePickerDialog(RegisterActivity.this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                eText.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year);
                setDate( dayOfMonth + "-" + (monthOfYear + 1) + "-" + year);
                }
            }, year, month, day);

    picker[0].show();
}

Сеттер:

 public void setDate(String date) {
        mDate = date;
    }

1 Ответ

0 голосов
/ 26 марта 2020

Я поместил свой комментарий в поле ответа из-за этого ограничения: «Вы должны иметь 50 репутацию, чтобы комментировать».

Вставить данные logcat для фактического устройства.

Я думаю, что оно имеет что-то связанное с проблемой 'style'.

Извлеките Проблема с диалоговым окном выбора даты в android 5 lolipop

...