Skip to content Skip to sidebar Skip to footer

Android Parcelable - Read/write Data To Parcel Using Generic Data Type

How can i implement to write my Set < ArrayList < ? > > to my Parcel using generic data type ? Here is my code.. dest.writeList(getArrTRA()); dest.write

Solution 1:

publicclassImageContainerimplementsSerializable, Parcelable  {
/**
 * 
 */privatestaticfinallongserialVersionUID=1L;

publicImageContainer() {
    // TODO Auto-generated constructor stub
}
publicImageContainer(Parcel in) {
    // TODO Auto-generated constructor stub
    readFromParcel(in);
}


/**
 * custom images in this article
 */@SerializedName("Image")
ArrayList<ImageCls> alCustomImages=newArrayList<ImageCls>();

public ArrayList<ImageCls> getAlCustomImages() {
    return alCustomImages;
}
publicvoidsetAlCustomImages(ArrayList<ImageCls> alCustomImages) {
    this.alCustomImages = alCustomImages;
}
@OverridepublicintdescribeContents() {
    // TODO Auto-generated method stubreturn0;
}
@OverridepublicvoidwriteToParcel(Parcel dest, int flags) {
    // TODO Auto-generated method stub
    dest.writeList(alCustomImages);
}
@SuppressWarnings("unchecked")privatevoidreadFromParcel(Parcel in) {
    // TODO Auto-generated method stubthis.alCustomImages = in.readArrayList(ImageCls.class.getClassLoader());
}

@SuppressWarnings("rawtypes")publicstaticfinal Parcelable.CreatorCREATOR=newParcelable.Creator() {
    public ImageContainer createFromParcel(Parcel in) {
        returnnewImageContainer(in);
    }

    public ImageContainer[] newArray(int size) {
        returnnewImageContainer[size];
    }
};
}

your class should implement Parcelable. An example is in above code.

Your issue is you are trying to read/write generic data type to the Parcel. But it is not possible to read/write generic data type in parcel. Read more how to use Parcelable here and Parcel here

Post a Comment for "Android Parcelable - Read/write Data To Parcel Using Generic Data Type"