#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) и т. Д.)