无法读取和写入 parcelable 中的双列表
Unable to read and write list of double in parcelable
我有一个 class 有双打列表。我的 class 正在实施 parcelable。我不知道如何读写 double as parcelable。
以下是我的class
public class CinemasModel implements Parcelable{
@SerializedName("ll")
private ArrayList<Double> mLl;
@SerializedName("films")
private List<FilmsModel> mFilms;
protected CinemasModel(Parcel in) {
mLl = new ArrayList<>();
in.readValue(this.getClass().getClassLoader());
mFilms = new ArrayList<FilmsModel>();
in.readList(this.mFilms, null);
}
public static final Creator<CinemasModel> CREATOR = new Creator<CinemasModel>() {
@Override
public CinemasModel createFromParcel(Parcel in) {
return new CinemasModel(in);
}
@Override
public CinemasModel[] newArray(int size) {
return new CinemasModel[size];
}
};
public CinemasModel(ArrayList<Double> ll, List<FilmsModel> films){
this.mLl = ll;
this.mFilms = films;
}
public CinemasModel(){
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeValue(mLl);
parcel.writeList(mFilms);
}
}
任何帮助将不胜感激。
- 您是否为 parcelable 编写代码? 这里是 parcelebale 插件
自动生成.
- 请记住,您需要使 FilmsModel class 也可打包。
下面的代码运行良好,由上面的 parcelable 插件生成。
public class CinemasModel implements Parcelable {
@SerializedName("ll")
private ArrayList<Double> mLl;
@SerializedName("films")
private List<FilmsModel> mFilms;
protected CinemasModel(Parcel in) {
this.mLl = new ArrayList<Double>();
in.readList(this.mLl, Double.class.getClassLoader());
this.mFilms = new ArrayList<FilmsModel>();
in.readList(this.mFilms, FilmsModel.class.getClassLoader());
}
public static final Parcelable.Creator<CinemasModel> CREATOR = new Parcelable.Creator<CinemasModel>() {
@Override
public CinemasModel createFromParcel(Parcel source) {
return new CinemasModel(source);
}
@Override
public CinemasModel[] newArray(int size) {
return new CinemasModel[size];
}
};
}
我有一个 class 有双打列表。我的 class 正在实施 parcelable。我不知道如何读写 double as parcelable。
以下是我的class
public class CinemasModel implements Parcelable{
@SerializedName("ll")
private ArrayList<Double> mLl;
@SerializedName("films")
private List<FilmsModel> mFilms;
protected CinemasModel(Parcel in) {
mLl = new ArrayList<>();
in.readValue(this.getClass().getClassLoader());
mFilms = new ArrayList<FilmsModel>();
in.readList(this.mFilms, null);
}
public static final Creator<CinemasModel> CREATOR = new Creator<CinemasModel>() {
@Override
public CinemasModel createFromParcel(Parcel in) {
return new CinemasModel(in);
}
@Override
public CinemasModel[] newArray(int size) {
return new CinemasModel[size];
}
};
public CinemasModel(ArrayList<Double> ll, List<FilmsModel> films){
this.mLl = ll;
this.mFilms = films;
}
public CinemasModel(){
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i) {
parcel.writeValue(mLl);
parcel.writeList(mFilms);
}
}
任何帮助将不胜感激。
- 您是否为 parcelable 编写代码? 这里是 parcelebale 插件 自动生成.
- 请记住,您需要使 FilmsModel class 也可打包。
下面的代码运行良好,由上面的 parcelable 插件生成。
public class CinemasModel implements Parcelable {
@SerializedName("ll")
private ArrayList<Double> mLl;
@SerializedName("films")
private List<FilmsModel> mFilms;
protected CinemasModel(Parcel in) {
this.mLl = new ArrayList<Double>();
in.readList(this.mLl, Double.class.getClassLoader());
this.mFilms = new ArrayList<FilmsModel>();
in.readList(this.mFilms, FilmsModel.class.getClassLoader());
}
public static final Parcelable.Creator<CinemasModel> CREATOR = new Parcelable.Creator<CinemasModel>() {
@Override
public CinemasModel createFromParcel(Parcel source) {
return new CinemasModel(source);
}
@Override
public CinemasModel[] newArray(int size) {
return new CinemasModel[size];
}
};
}