繁体   English   中英

还有其他方法可以通过Intents传递复杂的对象吗?

[英]Is there any other way to pass complex object with Intents?

所以我有非常复杂的数据类型,需要通过一个Intent发送。 所有这些类型都是作为基本类(BaseResponse)的一部分提供的,该类具有许多子类,这些子类还包含不同复杂数据类型的负载。 如果可以的话,我很乐意仅在子类上实现Parcelable,但似乎所有实现Parcelable的类的成员也都需要Parcelable吗?

如果答案不是“不,别再懒了”,那么您今天赢了一些互联网。

PS。 这些类型都是从WSDL自动生成的,因此我希望不必手动编辑它们。 DS

快速编辑:我知道Serializable接口,但是会带来同样的问题。

第2次修改:我注意到您可以通过Intent传递对象数组,我不确定这是否会将它序列化为一个对象(又名没有成员),或者当我收到数组时是否可以将其类型转换回去。 虐待尝试并报告

第3次修改:整个对象数组放入Intent都无法正常工作,我觉得很懒,我正在使用JSON序列化选项并将其标记为答案(即使我还没有尝试过,但猜测如果陌生人对它应该可以工作互联网是这样的)

最终编辑:我现在使用标记为正确答案的Json序列化方式,并且效果很好。 Gson可以序列化哪些对象有一些限制,但与我无关。 这样做可能是非常低效的方式(就cpu而言),但是值得我省去必须为300个类显式实现接口的时间。 谢谢大家的迅速回答和建议,毫无疑问,StackOverFlow是人类历史上最好的社区。

我认为没有其他选择,否则,您可以使用数据库填充该数据(如果可能的话),然后传递其键(表的主键)或某种实现它的方法。 如果您已经考虑过也不要杀了我! :O

我使用GSON库首先将我的对象转换为字符串(JSON字符串),然后放入意向中。

并在接收时将其转换回原始对象。

对我来说很好用,但不知道这是否是一种有效的方法。

所有类上实现Parcelable (不确定为什么会令您惊讶)是在Android上执行此操作的正确方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM