【问题标题】:Start activity with previous activities data intact以完整的先前活动数据开始活动
【发布时间】:2018-03-19 17:50:39
【问题描述】:

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

是否可以保留以前活动的数据?一世 搜索了一下,发现我可以做一个单例类,但它是 我还不清楚用法。

PS:真正的问题是我试图将一个 String ArrayList 从这个活动传递给主要活动,但这样做时,主要活动上的先前数据(从以前的活动传递)消失了。

【问题讨论】:

    标签: java android android-intent


    【解决方案1】:

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

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

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

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

    您还可以查看与单个热门活动相关的答案https://stackoverflow.com/a/1715405/6193843

    【讨论】:

      【解决方案2】:

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

      在接收 Intent 数据时保存共享首选项中的值。

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

      【讨论】:

        猜你喜欢
        • 2011-09-06
        • 1970-01-01
        • 1970-01-01
        • 2016-11-11
        • 2020-11-10
        • 2015-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多