gpt4 book ai didi

android - 如何为 List 实现 parcelable

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:54:34 28 4
gpt4 key购买 nike

我正在尝试在我的 parcelable 中传递一个列表:

public class MetaDados implements Parcelable {

private List<Long> sizeImages;

public MetaDados(List<Long> sizeImages){
this.sizeImages = sizeImages;
}

public List<Long> getSizeImages() {
return sizeImages;
}

public void setSizeImages(List<Long> sizeImages) {
this.sizeImages = sizeImages;
}

@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeList(sizeImages);
}

public static final Parcelable.Creator<MetaDados> CREATOR = new Parcelable.Creator<MetaDados>() {
@Override
public MetaDados createFromParcel(Parcel in) {
return new MetaDados(in);
}

@Override
public MetaDados[] newArray(int size) {
return new MetaDados[size];
}
};

private MetaDados(Parcel in) {
//HERE IS THE PROBLEM, I'VE tried this:

sizeImages = in.readList(sizeImages, Long.class.getClassLoader());

//but what i got: Type mismatch: cannot convert from void to List<Long>
}
}

最佳答案

试试这个:

sizeImages = new ArrayList<Long>(); // or any other type of List
in.readList(sizeImages, null);

Android documentation for Parcel.readList说:

Read into an existing List object from the parcel

因此,您需要先创建 List

关于android - 如何为 List<Long> 实现 parcelable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15774236/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com