Потеря данных при изменении ориентации Fragment

304
26 ноября 2016, 19:22

Здравствуйте! я начинающий прогер и не могу разобраться помогите пожалуйста. Есть NavigationView и несколько фрагмент страничек. Проблема: например я нахожусь в фрагменте категории и переворачиваю устройство и сбрасываются данные и переходит на главный экран. Как решить эту проблему?

Код OnCreate() главного активити :

 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        setContentView(R.layout.layout_main);
       //убрал ненужные коды
        navigationView.setNavigationItemSelectedListener(this);
        transaction.beginTransaction().replace(R.id.container, fragment_main).commit();
}

и вот метод onNavigationItemSelected():

 switch (item.getItemId())
     {
         case R.id.nav_main :
      transaction.beginTransaction().replace(R.id.container,fragment_main).commit();
             break;
         case R.id.nav_report_category:
             transaction.beginTransaction().replace(R.id.container,fragment_category).commit();
             break;
         case R.id.nav_history:
             transaction.beginTransaction().replace(R.id.container,fragment_history).commit();
             break;
     }
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
}
Answer 1

Мой магический шар говорит, вы в onCreate добавляете в активити фрагмент и не проверяете при этом есть ли уже в активити другой фрагмент.

Т.е. вам надо проерять есть ли фрагмент и только если его нет - добавлять главный фрагмент.

Также, если фрагмент у вас, не дай боже, в разметке указан - уберите его оттуда и добавляйте программно.

READ ALSO
Компоновка Swing'a BorderLayout.ANY

Компоновка Swing'a BorderLayout.ANY

Помогите разобратьсяИнтересует, почему если добавлять панель на фрейм , указывая BorderLayout

255
Как изменить иконку у jar с чашкой кофе?

Как изменить иконку у jar с чашкой кофе?

Добрый день, пытаюсь сменить у jar файла иконкуДля этого использую данную конструкцию

451
Не вызывается метод onCreate()

Не вызывается метод onCreate()

Хочу хранить состояние некоторых объектов и что бы эти объекты были доступны всюду

262