Parcelable对象通过Bundle传递后与原始对象是否相同?

4

这是一件困扰我已经有一段时间的事情。

如果我们在活动中拥有某种 Parcelable 对象,并将其使用 Bundle 传递到 fragment 中,我一直认为我们在 fragment 中接收到的对象实际上是一个新对象。然而,今天运行了一些测试后,似乎 fragment 中的对象实际上与活动中的对象相同。

这是正确的吗?

编辑:小小的澄清。我不是指对象的值。我指的是“==”比较。


1
是的,它们相等 ;) - Milad Faridnia
谢谢你的快速回复 :) - Tomislav Turcic
1个回答

4
当您将对象设置为Parcelable,然后使用Intent将其传递到另一个活动中时,代码如下:
Intent i = new Intent();
i.putExtra("name_of_extra", myParcelableObject);

在另一个活动或片段中接收到的对象是您之前传递的确切对象。您可以通过以下方式接收对象:

Intent i = getIntent();
MyParcelable myParcelableObject = (MyParcelable)i.getParcelableExtra("name_of_extra");

1
请问是否有任何官方文档或链接可以更详细地解释这个问题?最近我遇到了一个错误,结果发现它们是同一个对象,这相当令人惊讶。(顺便说一下,我也向ChatGPT询问了这个问题,但GPT说他们不知道。) - Anthonyeef
我认为聊天GPT是正确的。我犯了错误,它们不是一样的。你可以看一下https://developer.android.com/reference/android/content/Intent - Milad Faridnia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接