java - Android Parcelable - 使用通用数据类型将数据读/写到 Parcel

标签 java android arraylist set parcelable

我如何实现写我的Set < ArrayList < ? > >使用通用数据类型到我的包裹?

这是我的代码..

        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];
    }
};
}

你的类应该实现 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

关于java - Android Parcelable - 使用通用数据类型将数据读/写到 Parcel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28869067/

相关文章:

java - org.dozer.MappingException : No read or write method found for field

java - 在 JList 上设置选定的索引

android - RecyclerView 在使用 Runnable 从 Handler 使用 notifyItemChanged 时崩溃 [IllegalArgumentException]

java - 恢复 ArrayList 中的 CheckBox 状态永远不会将 CheckBox 设置为已选中

java - 如何将 protected 方法访问限制为仅子类

java - AndEngine - 检查与 Sprite 或 Physics Body 的重叠?

android - Jetpack Compose TextField 是否存在辅助文本、错误消息、字符计数器?

android - 如何使用自定义 Makefile 为 Android 编译 STL C++?

java - try block 和 ArrayList 的问题 [Java]

java - 从 Java 数组列表中删除学生时出错