0

如果我要使用 Parcelable 将自定义对象传递给另一个活动/服务

    ObjectA obj = new ObjectA();

    // Set values etc.

    Intent i = new Intent(this, MyActivity.class);
    i.putExtra("com.package.ObjectA", obj);

    startActivity(i);

然后在新的活动/服务中使用

    Bundle b = getIntent().getExtras();
    ObjectA obj =b.getParcelable("com.package.ObjectA");

然后在第一个活动中更改对象字段的值。

第二个活动中的对象会反映这一点,还是它充当第一个对象的克隆并且永远不会改变?

如果第二个对象永远不会改变实现这种行为的最简单方法是什么?

提前致谢

4

1 回答 1

0

不,更改不会反映到原始对象中。如果您愿意,您可以说它充当第一个对象的克隆。如果您需要返回修改后的对象,请执行此操作。请参阅 setResult,您可以将填充返回数据的 Intent 传递给它(在您的情况下为修改的对象)。将它与 startActivityForResult 结合使用。

于 2011-09-20T14:17:35.633 回答