我有一个实现了Serializable接口的自定义类型对象,我能够成功地通过我的活动传递这个对象。
现在情况是这样的:
在第一个活动中,CustomObject实例具有一个String属性,值为“A”,并作为Extra参数传递给第二个活动:
Intent intent = new Intent(getApplicationContext(), Activity_2.class);
intent.putExtra("CUSTOM_OBJECT", customObjectInstance);
startActivityForResult(intent, 0);
在第二个活动中,我从意图中检索CustomObject并将属性值从“A”修改为“B”。当我按返回按钮从Activity 2返回Activity 1时,CustomObject的属性值又变成了“A”!我检查了对象的哈希码,并确认它是两个Activity上相同的实例,但仍然无法弄清楚为什么会发生这种情况。
编辑:
如所请求,关于我设置属性值的代码,它非常简单:在Activity 2上:
CustomObject obj = (CustomObject) getIntent().getExtras().getSerializable("CUSTOM_OBJECT");
obj.setProperty("B");