Android Parcelable - 使用通用数据类型读取/写入数据到 Parcel
How can i implement to write my Set < ArrayList < ? > >
to my Parcel using generic data type ?
Here is my code..
dest.writeList(getArrTRA());
dest.writeList(getArrTSAC());
dest.write???(getArrListSet()); //how can i write my Set<ArrayList<?
public Set<ArrayList<?>> getArrListSet() {
return arrSetOfPaymentMode;
}
解决方案
public class ImageContainer implements Serializable, Parcelable {
/**
*
*/
private static final long serialVersionUID = 1L;
public ImageContainer() {
// TODO Auto-generated constructor stub
}
public ImageContainer(Parcel in) {
// TODO Auto-generated constructor stub
readFromParcel(in);
}
/**
* custom images in this article
*/
@SerializedName("Image")
ArrayList<ImageCls> alCustomImages=new ArrayList<ImageCls>();
public ArrayList<ImageCls> getAlCustomImages() {
return alCustomImages;
}
public void setAlCustomImages(ArrayList<ImageCls> alCustomImages) {
this.alCustomImages = alCustomImages;
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
// TODO Auto-generated method stub
dest.writeList(alCustomImages);
}
@SuppressWarnings("unchecked")
private void readFromParcel(Parcel in) {
// TODO Auto-generated method stub
this.alCustomImages = in.readArrayList(ImageCls.class.getClassLoader());
}
@SuppressWarnings("rawtypes")
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public ImageContainer createFromParcel(Parcel in) {
return new ImageContainer(in);
}
public ImageContainer[] newArray(int size) {
return new ImageContainer[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
相关文章