【问题标题】:Why does the fragment reset the activity it goes to?为什么片段重置它去的活动?
【发布时间】:2016-08-05 03:06:22
【问题描述】:

我在片段中有一个导航栏(一堆按钮),我试图在我的应用程序的每个页面上都有它。

当我与主页交互并将按钮上的文本更改为 abc 然后单击导航栏片段时,我成功进入下一页。当我点击 android 的返回按钮时,应用程序成功返回到 Activity,文本更改为 abc。

但是,如果我将文本更改为 abc,然后单击导航栏到新页面,然后单击导航栏返回主页,则文本已重置为原始值而不是 abc。

我真的不确定如何解释这个问题,有人有任何线索或想要更多说明吗?

【问题讨论】:

  • 请分享您的代码。

标签: android android-fragments android-lifecycle


【解决方案1】:

在没有代码库和 UI 的情况下,很难理解您的应用功能。据我了解,我相信您在单击导航栏上的后退按钮时并没有使用 savedInstancestate 捆绑对象来保存数据。如果要保存文本更改,则必须在返回活动或启动新活动/片段之前捆绑数据。看两件事:

  1. 活动/片段生命周期。
  2. SavedInstanceState

【讨论】:

    【解决方案2】:

    您的片段在添加/替换时需要标签或 id 才能恢复。

        String mCurrentOverlayFragmentTag = "ControlOverlayFragment";
        getFragmentManager()
                .beginTransaction()
                .replace(R.id.overlayHolder, fragment, mCurrentOverlayFragmentTag)
                .commit();
    

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-29
      • 1970-01-01
      • 2014-12-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多