Android Parcelable - read/write 数据到 Parcel 使用通用数据类型
Android Parcelable - read/write data to Parcel using generic data type
我如何实现使用通用数据类型将 Set < ArrayList < ? > >
写入我的 Parcel?
这是我的代码..
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];
}
};
}
您的 class 应该实施 Parcelable。上面的代码就是一个例子。
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
我如何实现使用通用数据类型将 Set < ArrayList < ? > >
写入我的 Parcel?
这是我的代码..
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];
}
};
}
您的 class 应该实施 Parcelable。上面的代码就是一个例子。
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