如何在不创建新片段的情况下显示片段?
Posted
技术标签:
【中文标题】如何在不创建新片段的情况下显示片段?【英文标题】:How can I display a fragment without creating a new one? 【发布时间】:2021-12-04 11:40:12 【问题描述】:我有一个带有底部导航菜单的应用,它使用开关盒来更改显示的片段
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;
但是,我的一个片段中有一个 ArrayList,其中包含来自用户输入的信息,如果应用程序关闭并再次打开,我需要保存这些信息。以我现在的方式,每次单击菜单选项时它都会创建一个新片段。我怎样才能让它打开/显示一个预先存在的片段?
谢谢
【问题讨论】:
欢迎来到 SO。 android studio 是您用来开发应用程序的工具,但您的问题根本不涉及 IDE。最好使用android
而不是android-studio
【参考方案1】:
您必须将该数据存储在片段之外。不仅仅是通过打开/关闭应用程序,可以出于多种原因重新创建片段。
查找存储库模式并决定您希望(或允许)存储该数据的位置。 (共享偏好、房间(sqlite)数据库等)
【讨论】:
以上是关于如何在不创建新片段的情况下显示片段?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不与 MainActivity 交互的情况下从通知中打开片段页面?