我有2项活动(ActivityA和ActivityB) 在ActivityA中,我正在创建一个新的Object Game,里面有一个ArrayList 游戏=新游戏();
我启动ActivityB
public void startActivityB(View view){
Intent i = new Intent(this,ActivityB.class);
i.putExtra("Game", game);
startActivity(i);
}
在活动B中,我获取对象,访问它们的ArrayList并删除一些元素。 (我在删除前后检查了ArrayList,并成功删除了它们) 问题是当我完成ActivityB并再次启动它时,删除的元素仍然在ArrayList上。
答案 0 :(得分:2)
您应该使用startActivityForResult
启动活动B,并通过onActivityResult
答案 1 :(得分:2)
这是因为您正在编辑重复对象的两个不同实例。考虑在活动A中将其设置为静态,并直接在活动B中访问它。
OR
考虑您的应用的MVC结构。您不应该跨活动传递大量数据的多个版本。标准化访问和修改数据的方式。