Я работаю над приложением, над формой регистрации, пользователь должен указать свой день рождения. Я использовал 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;
}