0

我有 2 个活动(ActivityA 和 ActivityB) 在 ActivityA 中,我正在创建一个新的 Object Game,它在 Game game = new Game(); 中有一个 ArrayList

我开始 ActivityB

public void startActivityB(View view){

    Intent i = new Intent(this,ActivityB.class);
    i.putExtra("Game", game);
    startActivity(i);

}

在活动 BI 中获取对象,访问它们的 ArrayList 并删除一些元素。(我在删除前后检查了ArrayList,它们被成功删除了)问题是当我完成ActivityB并再次启动它时,被删除的元素仍在ArrayList上。

4

2 回答 2

2

您应该使用 启动活动 B startActivityForResult,并将修改后的 ArrayList 通过onActivityResult

于 2013-05-24T19:28:30.597 回答
2

这是因为您正在编辑复制对象的两个不同实例。考虑在 Activity A 中将其设为静态并在 Activity B 中直接访问它。

或者

为您的应用考虑一个 MVC 结构。您真的不应该跨活动传递大量数据的多个版本。标准化您访问和修改数据的方式。

于 2013-05-24T19:29:45.810 回答