Android 如何从父活动引用对象

Android 如何从父活动引用对象,android,serialization,android-activity,Android,Serialization,Android Activity,我不确定我所问的是否正确,所以请原谅我的无知 我需要在另一个活动中使用在主活动中初始化的对象。 我用implements Serializable序列化了对象类,并将其发送给新活动,放入额外的中,稍后用intent.getSerializableTextra检索它 另一种方法是使用以下命令直接从活动访问以前公开声明的对象: MainActivity mainActivity = (MainActivity) this.getParent(); Object object = mainActivi

我不确定我所问的是否正确,所以请原谅我的无知

我需要在另一个活动中使用在主活动中初始化的对象。 我用
implements Serializable
序列化了对象类,并将其发送给新活动,放入额外的中,稍后用
intent.getSerializableTextra
检索它

另一种方法是使用以下命令直接从活动访问以前公开声明的对象:

MainActivity mainActivity = (MainActivity) this.getParent();
Object object = mainActivity.object;
这些都对吗

如果是,哪一个


如果两者都有,哪一个更好?

首先我不确定你的设计是否正确。尝试投出主要活动不是一个好的做法。这是使它成为一个神类的一步

我不确定发送可序列化对象的意义何在。一般来说,更可能使用一些原始值或字符串。如果某件东西很重,为什么要通过它?更让我烦恼的是,你说你想在MainActivity中使用一些“初始化”的东西,这让我觉得你不是在试图传递数据,而是从另一个活动访问MainActivity的状态,这是一种糟糕的做法

视图需要显示数据并通知诸如单击某些“其他代码”之类的事件。没别的了。您可以拥有一些单例类,并根据第一个活动中的操作适当地更改其状态。然后从第二个活动开始,假设您有MVVM,您创建ViewModel并观察它,ViewModel在其init{}中可以调用共享单例,并可以通过LiveData将数据传播回第二个活动,或者更好的做法是告诉它向用户“显示”什么

我希望有帮助

this.getParent()
仅在中工作。额外的意图将是一种“标准方式”。