代码之家  ›  专栏  ›  技术社区  ›  Shubham Kumar

在以前的活动数据保持不变的情况下启动活动

  •  1
  • Shubham Kumar  · 技术社区  · 8 年前

    我正在尝试使用intent启动一个新的活动,在完成该活动时,我希望我以前的活动保留其数据。我已经有其他活动将一些数据传递到此主活动中,但在启动此新活动时,当我返回时,所有这些数据都会消失,并给我一个空指针异常。

    是否可以保留以前活动中的数据?我 搜索了一下,发现我可以上一节单人课,但是 我还不清楚它的用法。

    P、 S:真正的问题是,我试图将一个字符串ArrayList从此活动传递到主活动,但这样做时,主活动上以前的数据(从以前的活动传递过来的)就会消失。

    2 回复  |  直到 8 年前
        1
  •  0
  •   Link182    8 年前

    检查该链接 https://inthecheesefactory.com/blog/understand-android-activity-launchmode/en

    我认为“单顶”活动会解决你的问题。

    此外,您还可以通过intents将来自任何其他android活动或片段的数据发送到您的单个顶级活动,并以这种方式在主活动中进行处理:

    @Override
        protected void onNewIntent(Intent intent) {
            ... = intent.getStringArrayExtra(KEY)
            ...
    }
    

    您还可以检查与单顶活动相关的答案 https://stackoverflow.com/a/1715405/6193843

        2
  •  0
  •   Ashray P. Shetty    8 年前

    如果用法不清楚,那么现在可以使用SharedReference。

    在接收意图数据时将值保存在共享首选项中。

    然后,当您导航到下一个屏幕并返回时,在活动的onResume中加载保存在共享首选项中的数据。