Я новичок в Android Studio. Я пытаюсь отобразить фрагмент выбора времени и фрагмента даты последовательно, чтобы пользователь мог выбрать дату и время, но у меня возникают проблемы с обнаружением нажатия кнопки отмены для любого фрагмента. Я пробовал .setOnCancelListener
и .setOnDismissListener
, но ни одна из двух не работает при нажатии кнопки отмены. Сообщение журнала никогда не отображается. Нет сообщения об ошибке или что-то, просто ничего не происходит. Не знаю, в чем проблема, я перепробовал все, что смог найти в Интернете, но безрезультатно. Код, устанавливающий неработающий слушатель, находится здесь:
DatePickerDialog dateDialog = new DatePickerDialog(getActivity(), this, year, month, day);
dateDialog.getDatePicker().setMinDate(System.currentTimeMillis() - 1000);
dateDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
// If the user presses cancel when selecting the date
Log.i("BlockButton", "Date Dialog cancelled"); // This log message is never displayed
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity());
SharedPreferences.Editor prefsEditor = sharedPref.edit();
prefsEditor.putBoolean("dateSelected", false); // This SharedPreference isn't changed either
prefsEditor.apply();
}
});
И код вызова вызова фрагмента находится здесь:
public void showDatePickerDialog() {
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getSupportFragmentManager(), "datePicker");
}
Это почти то же самое для фрагмента TimePicker. Что я мог сделать не так?