Android Parcelable - read/write data to Parcel using generic data type

后端 未结 1 610
失恋的感觉
失恋的感觉 2020-12-22 04:42

How can i implement to write my Set < ArrayList < ? > > to my Parcel using generic data type ?

Here is my code..

        des         


        
相关标签:
1条回答
  • 2020-12-22 05:20
    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

    0 讨论(0)
提交回复
热议问题