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