如何知道Parcelable上剩余数据的数据类型?

时间:2012-10-01 17:25:04

标签: android serialization android-intent xsd parcelable

我正在实现一种XSD对象到Android上的Parcelable之间的映射。一切都很顺利,除非我有一个更复杂的xsd元素,其中包含一个可选的元素(minOccurs ='0'maxOccurs ='1')。

我需要用以下格式编写我的bean构造函数:

private Bean (Parcel in) {
    super();
    this.setId(in.readInd());
    this.setComplexData((ComplexClass) in.readParcelable(ComplexClass.class
            .getClassLoader()));
    this.setComplexData2((ComplexClass2) in.readParcelable(ComplexClass2.class
            .getClassLoader()));

}

但复杂数据都是可选的。

当我只有一个可选数据时,我正在使用:

    if(in.dataAvail() >0)
                this.setComplexData((ComplexClass) in.readParcelable(ComplexClass.class
            .getClassLoader()));

但如果两者都是可选的,我就无法做到。因此,我想知道是否有某种方法来识别parcelable中的对象是什么,某种方式来检查类签名?从这个意义上讲,我可以检查数据是否为ComplexClass1或2并进行读取。

0 个答案:

没有答案