我尝试使用intent启动新活动并完成活动,我希望以前的活动保留其数据。我已经有其他活动将一些数据传递给这个主要活动但是在开始这个新活动时,当我回去时,所有数据都会消失,并给我一个空指针异常。
是否可以保留之前活动的数据?一世 搜索了一下,发现我可以做一个单身课,但是它 用法仍然不清楚。
PS:真正的问题是我试图将此活动中的String ArrayList传递给主要活动但是这样做,主要活动的先前数据(从以前的活动传递)消失了。
答案 0 :(得分:0)
如果用法不清楚,那么您现在可以使用SharedPreference。
在接收Intent数据时保存共享首选项中的值。
然后当您导航到下一个屏幕并返回时,在您的活动的onResume中加载保存在共享首选项中的数据。
答案 1 :(得分:0)
检查链接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
相关的答案