У меня есть основная деятельность с несколькими фрагментами. А вот как, как я включаю фрагментыNo Activity Error on Fragment after FindFragementByTag
У меня есть переменная INT в основной деятельности, что я обновляю из каждого фрагмента, чтобы определить, какой фрагмент был активен до изменения ориентации
private int ACTIVE_FRAGMENT = 0;
Во время сохраненным например на операцию, я сохраняю INT как так
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putInt(Constants.ACTIVE_EVENT_ID, ACTIVE_FRAGMENT);
super.onSaveInstanceState(outState);
}
И onRestoreInstanceState я возвращаюсь к активному фрагменту, как этот
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
if (savedInstanceState != null){
ACTIVE_FRAGMENT = savedInstanceState.getInt(Constants.ACTIVE_EVENT_ID);
if (ACTIVE_FRAGMENT > 0){
FragmentManager fm = getSupportFragmentManager();
switch (ACTIVE_FRAGMENT) {
case 1:
EventSetupFragmentOne fragmentOne = (EventSetupFragmentOne) fm.findFragmentByTag(Constants.SETUP_FRAGMENT_ONE_TAG);
if (fragmentOne != null) {
openFragment(fragmentOne, getString(R.string.event_setup_title_1), Constants.SETUP_FRAGMENT_ONE_TAG);
}
break;
}
}
}
}
Это восходит к активному фрагменту, но затем бросает Нет Actitiy найдено исключение
Caused by: java.lang.IllegalStateException: No activity
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1125)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1120)
at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1929)
Что я могу сделать по-другому, чтобы вернуться к активному фрагменту после изменения конфигурации?
Благодарим вас за отзыв, но у меня есть 8 фрагментов, и мне нужно сказать, какой из них нужно воссоздать? –
, если изменение конфигурации - это поворот экрана, тогда вам не обязательно! – pelotasplus
Спасибо, что работает –