Android - MVP - фрагменты, докладчик и видоискательAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Android - MVP - фрагменты, докладчик и видоискатель

Сообщение Anonymous »

У меня есть активность1, которая содержит несколько фрагментов через видоидж. Каждый фрагмент имеет докладчик. For some reason when I rotate the screen, the fragment is recreated and lose the relationship with the presenter
I'm doing the following

[*]open activity 1 (contains viewPager with fragment)
[*]open activity 2
[*]rotate the screen
Press back Кнопка < /li>
< /ol>
Очевидно, что фрагмент воссоздается, и я получаю следующую ошибку < /p>

, вызванная: java.lang.nullpointerExcept .... fragment1.onresume (fragment1.java:72) < /p>
< /blockquote>
my activity1 содержит 2 представления (макет и макет-нормальная ланд) < /strong>
Код активности1 является следующим образом < /p>
) < /strong>
Код активности1 является следующим образом < /p>
< /strong>
.@Override
protected void onCreate(Bundle savedInstanceState) {
...
final ViewPager viewPager = (ViewPager) findViewById(R.id.htab_viewpager);
TabLayout tabLayout = (TabLayout) findViewById(R.id.htab_tabs);
...
ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
< /code>
Код класса ViewPagerAdapter - это следующее: < /p>
private class ViewPagerAdapter extends FragmentPagerAdapter {
private final List mFragmentTitleList = Arrays.asList("Fragment1", "Fragment2");

public ViewPagerAdapter(FragmentManager manager) {
super(manager);
}

@Override
public Fragment getItem(int position) {
if (position == 0){
Fragment1 fragment = Fragment1.newInstance();
new Presenter1(fragment);
return fragment;

}else if (position == 1){
Fragment2 fragment = Fragment2.newInstance();
new Presenter2(fragment);
return fragment;

}
return null;
}

@Override
public int getCount() {
return mFragmentTitleList.size();
}

@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
< /code>
Код каждого фрагмента является следующим < /p>
public class Fragment1 extends Fragment {

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Retain this fragment across configuration changes.
setRetainInstance(true);
}

@Override
public void onResume() {
super.onResume();
mPresenter.subscribe();
}

@Override
public void onPause() {
super.onPause();
mPresenter.unsubscribe();
}

@Override
public void setPresenter(@NonNull Presenter1 presenter) {
mPresenter = checkNotNull(presenter);
}

....

}
< /code>
Код каждого предписания < /p>
public class Presenter1 {

private final Fragment1 view;

public PerfilAlumnoCalificacionesPresenter(Fragment1 view ....) {
....
this.view = view
this.view.setPresenter(this);
}

....

}
< /code>
Как это исправить? Я не понимаю, почему фрагмент воссоздан, если он содержит setretainInstance (true).
Как лучше всего инициализировать докладчика, чтобы фрагменты не теряли отношения?

Подробнее здесь: https://stackoverflow.com/questions/507 ... -viewpager
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Библиотека подкачки Android показывает пустой видоискатель, когда список пуст
    Anonymous » » в форуме Android
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Компонент архитектуры Android MVP и жизненного цикла
    Anonymous » » в форуме Android
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Компонент архитектуры Android MVP и жизненного цикла
    Anonymous » » в форуме Android
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Android MVP: Что такое взаимодействие?
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Android MVP: Что такое взаимодействие?
    Anonymous » » в форуме Android
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»