Выходные данные DatePickerDialog DatePickerFragment должен быть общедоступным статическим классом, чтобы его можно было правильно воссоздать из мгновенного состояния.

Я пытаюсь реализовать этот DatePickerDialog в своем приложении для Android:

public void showDatePickerDialog(View v) {
    DialogFragment newFragment = new DatePickerFragment();
    newFragment.show(getFragmentManager(), "datePicker");
}

public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        final Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH);
        int day = c.get(Calendar.DAY_OF_MONTH);
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }

    public void onDateSet(DatePicker view, int year, int month, int day) {
        int mon = month + 1;
        date = day + "/" + mon + "/" + year;
        textview1.setText(date);
    }
}

к сожалению, приложение вылетает, когда я пытаюсь отобразить диалоговое окно showDatePickerDialog(imageview1);, и я получаю следующую ошибку:

DatePickerFragment должен быть общедоступным статическим классом, чтобы его можно было правильно воссоздать из мгновенного состояния

Может кто-нибудь, пожалуйста, помогите мне исправить это? Я благодарна за каждый ответ :)


person Onno    schedule 12.08.2020    source источник
comment
Это может ответить на ваш вопрос stackoverflow.com/a/39916305/6845131.   -  person Vishist Varugeese    schedule 12.08.2020
comment
Для сбоя прикрепите трассировку стека из logcat. Проблема с общедоступным статическим классом, скорее всего, не является причиной сбоя здесь (это произойдет только там, например, после изменения конфигурации).   -  person laalto    schedule 12.08.2020
comment
Благодаря вам обоим, я понял это. Эта ссылка очень помогла: androidride.com /   -  person Onno    schedule 12.08.2020