Я хочу изменить адаптер фрагмента при изменении параметров фильтра пользователя (в этом случае семестр).Невозможно изменить адаптер во Фрагменте после уничтожения активности
Это моя активность:
Следующий код в первый момент работает отлично:
Мои активность ручки Изменение семестре
protected void onChangeSemester(String oldSemester, String newSemester) {
super.onChangeSemester(oldSemester, newSemester);
if (!oldSemester.equals(newSemester)) {
pagerAdapter.setSemester(newSemester);
}
}
Тогда мой pagerAdapter ...
public void setSemester(String newSemester) {
gradesFragment.changeSemester(newSemester, context);
}
И, наконец, мой фрагмент:
public void changeSemester(String newSemester, Context context) {
this.context = context;
this.semester = newSemester;
if (adapter == null) {
adapter = createAdapter(newSemester);
setListAdapter(adapter);
}
adapter.setList(createList(newSemester));
}
НО ... После активности разрушается, код перестает работать.
Затем мой адаптер воссоздан в changeSemester, но данные не обновляются. я уже пытался getListView так:
public void changeSemester(String newSemester, Context context) {
this.context = context;
this.semester = newSemester;
if (adapter == null) {
adapter = (GradeListAdapter) getListView().getAdapter();
}
adapter.setList(createList(newSemester));
}
Но он бросает:
FATAL EXCEPTION: main java.lang.IllegalStateException: Content view not yet created
at android.support.v4.app.ListFragment.ensureList(ListFragment.java:328)
at android.support.v4.app.ListFragment.getListView(ListFragment.java:222)
at si.unisanta.tcc.unisantaapp.application.fragments.grade.GradesFragment.changeSemester(GradesFragment.java:110)
at si.unisanta.tcc.unisantaapp.application.MainActivityPagerAdapter.setSemester(MainActivityPagerAdapter.java:40)
at si.unisanta.tcc.unisantaapp.application.MainActivity.onChangeSemester(MainActivity.java:210)
at si.unisanta.tcc.unisantaapp.application.AppCompatActivityToolbarBase$1$1.onClick(AppCompatActivityToolbarBase.java:64)
at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:940)
Что я делаю неправильно? Похоже, что ссылка ListView потеряна и становится нулевой, onCreateView не вызвано снова в моем фрагменте, так что же делать? Есть способ исправить это путем воссоздания фрагмента или чего-то еще?
пожалуйста, вы можете разработать "После того, как деятельность разрушается, код перестает работать"? – Pooya
@Pooya Я открываю свое приложение в первый раз, он работает хорошо. Затем я закрою его, нажав кнопку «Домой». Я открываю любое другое приложение, и через какое-то время я снова открываю приложение, и он становится багги, как я писал выше. Адаптер разрушен, и я не могу получить ListView. – Latrova