问题描述
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