Измените это:
@SuppressLint("ValidFragment")
public class SelectDateFragment ...
на это:
public static class SelectDateFragment ...
Здесь происходит то, что платформа Android пытается "воссоздать" ваш фрагмент изсохраненное состояние экземпляра, и он может сделать это только в том случае, если число вещей истинно.Одна из многих вещей, которые должны быть истинными, заключается в том, что вашему Фрагменту «не нужно» ничего другого для создания экземпляра, но все нестатические внутренние классы «нуждаются» во внешнем экземпляре внешнегокласс для создания экземпляра.
Если добавление ключевого слова static
в определение класса вашего фрагмента вызывает другие проблемы, вам придется решать их отдельно.Возможно, в вашем классе Activity есть метод, который вы хотите вызвать;например,
someActivityCall();
можно заменить на
MyActivity activity = (MyActivity) getActivity();
activity.someActivityCall();