【问题标题】:Handling derrived objects when using Parceable使用 Parcelable 时处理派生对象
【发布时间】:2012-02-15 13:48:37
【问题描述】:

假设您有两个类 ObjA 和 ObjB。 ObjB 派生自 ObjA。

如果你在 ObjB 中实现 parcelable,你还需要 parcel ObjA 吗??

我有一个项目,当我尝试上述方法时它不起作用,但是一旦我将 ObjA 和 ObjB 组合在一起,应用程序就可以工作。

我看到一个与site 相关联的问题,但派生类在 ObjB 中有 ObjA。我只是在扩展 ObjA,所以我还需要对这两个类进行 parcelable 吗???

【问题讨论】:

  • 你读过this的问题吗?
  • 谢谢..我刚刚做了。我可能会改回来看看这是否可行。

标签: android parcelable


【解决方案1】:

如果我理解正确,objB 扩展了 objA。在那种情况下,我认为您希望将 parcelable 放入 objA 中,以便 objB 也能得到它。

如果您的计划是创建一个实现 parcelable 的特殊类,并让许多其他类扩展该类,这很棘手,因为 objB 中的成员和字段需要按照它们被读取的顺序写入,所以 objA 需要正确排序,它需要知道 objB 的成员是什么类型,以便它可以读取和写入正确的类型。幸运的是,我写了一个可以做到这一点的类:

https://github.com/awadalaa/Android-Global-Parcelable

【讨论】:

    【解决方案2】:

    据我了解

    如果 ObjB 是 ObjA - 如果在 ObjB 中完成,则无需在 ObjA 中实现 parcelable。

    但是,

    如果 ObjB 有一个 ObjA - 只有通过包裹发送它的状态时,您才需要在 ObjA 中实现 parcelable。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多