Android的Parcelable - 读取使用通用的数据类型/写数据到地块 [英] Android Parcelable - read/write data to Parcel using generic data type

查看:479
本文介绍了Android的Parcelable - 读取使用通用的数据类型/写数据到地块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我如何能实现给我写设置< ArrayList的< ? > > 使用通用数据类型来我的包裹

下面是我的code ..

  dest.writeList(getArrTRA());
        dest.writeList(getArrTSAC());
        dest.write ???(getArrListSet()); //我怎么能写我的Set< ArrayList的&LT ;?
公开组< ArrayList的<>> getArrListSet(){
        返回arrSetOfPaymentMode;
    }


解决方案

 公共类ImageContainer实现Serializable,Parcelable {
/ **
 *
 * /
私有静态最后的serialVersionUID长1L =;公共ImageContainer(){
    // TODO自动生成构造函数存根
}
公共ImageContainer(包裹中){
    // TODO自动生成构造函数存根
    readFromParcel(在);
}
/ **
 在这篇文章中*自定义图像
 * /
@SerializedName(图像)
ArrayList的< ImageCls> alCustomImages =新的ArrayList< ImageCls>();公众的ArrayList< ImageCls> getAlCustomImages(){
    返回alCustomImages;
}
公共无效setAlCustomImages(ArrayList的< ImageCls> alCustomImages){
    this.alCustomImages = alCustomImages;
}
@覆盖
公众诠释describeContents(){
    // TODO自动生成方法存根
    返回0;
}
@覆盖
公共无效writeToParcel(DEST包裹,INT标志){
    // TODO自动生成方法存根
    dest.writeList(alCustomImages);
}
@燮pressWarnings(未登记)
私人无效readFromParcel(包裹中){
    // TODO自动生成方法存根
    this.alCustomImages = in.readArrayList(ImageCls.class.getClassLoader());
}@燮pressWarnings(rawtypes)
公共静态最终Parcelable.Creator CREATOR =新Parcelable.Creator(){
    公共ImageContainer createFromParcel(包裹中){
        返回新ImageContainer(中);
    }    公共ImageContainer [] newArray(INT大小){
        返回新ImageContainer【尺寸】;
    }
};
}

您的类实现Parcelable。一个例子是在上面code。


  

您的问题是你想读/写通用的数据类型来包裹。但它不可能读/写在包裹通用数据类型。了解更多如何在这里使用 和包裹的这里


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

这篇关于Android的Parcelable - 读取使用通用的数据类型/写数据到地块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆