Как я могу отобразить фрагмент без создания нового?

#java #android #android-fragments #fragmentmanager

Вопрос:

У меня есть приложение с нижним меню навигации, и оно использует переключатель для изменения отображаемого фрагмента

 public boolean onNavigationItemSelected(@NonNull MenuItem item) {  Fragment selectedFragment = null;  switch(item.getItemId()) {  case R.id.nav_home:  selectedFragment = new HomeFragment();  break;  case R.id.nav_classes:  selectedFragment = new ClassesFragment();  break;  case R.id.nav_homework:  selectedFragment = new HomeworkFragment();  break;  } getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,  selectedFragment).commit();  return true;  }  

Однако в одном из моих фрагментов у меня есть список массивов, в котором содержится информация из пользовательского ввода, которую мне нужно сохранить, если приложение будет закрыто и открыто снова. С тем, как у меня это сейчас, он просто создает новый фрагмент каждый раз, когда я нажимаю на пункт меню. Как я могу сделать так, чтобы он открывал/отображал ранее существовавший фрагмент?

Спасибо

Комментарии:

1. добро пожаловать в SO. android studio-это то, что вы используете для разработки своего приложения, но ваш вопрос вообще не связан с IDE. лучше всего использовать android и не android-studio

Ответ №1:

Вам придется хранить эти данные за пределами фрагмента. Фрагмент может быть воссоздан по множеству причин, а не только путем открытия/закрытия приложения.

Найдите шаблон репозитория и решите, где вы хотите (или разрешено) хранить эти данные. (Общие предпочтения, база данных комнат (sqlite) и т. Д.)