Android的Parcelable - 读取使用通用的数据类型/写数据到地块 [英] Android Parcelable - read/write data to Parcel using generic data type
本文介绍了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屋!
查看全文