我也尝试读取和写入这个 ArrayList 结构:ArrayList<ArrayList<Pair<Float,Float>>> points我已经看到唯一的方法是使用外部 ArrayList 内部的类,但在这种情况下我没有。这是我的完整课程,我该如何实施?import android.os.Parcel;import android.os.Parcelable;import android.util.Pair;import java.io.Serializable;import java.util.ArrayList;public class Cornice implements Serializable, Parcelable { private String number; private ArrayList<ArrayList<Pair<Float,Float>>> points; public Cornice(String n, ArrayList<ArrayList<Pair<Float,Float>>> p) { number = n; if (p!=null) points = new ArrayList<>(p); else points=new ArrayList<>(); } protected Cornice(Parcel in) { number = in.readString(); points = //MISSING } public String getNumber () { return number; } public ArrayList<ArrayList<Pair<Float,Float>>> getPoints () { return points; } public static final Creator<Cornice> CREATOR = new Creator<Cornice>() { @Override public Cornice createFromParcel(Parcel in) { return new Cornice(in); } @Override public Cornice[] newArray(int size) { return new Cornice[size]; } }; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(number); //MISSING }}
1 回答
慕慕森
TA贡献1856条经验 获得超17个赞
Pair既不可打包,也不可序列化,因此您尝试做的事情将不起作用。您将必须更改用于将点保存为其他内容的数据结构。例如,您可以将其转换为如下所示:
private ArrayList<ArrayList<Float[]>> points;
甚至(如果您不想支持空值):
private ArrayList<ArrayList<float[]>> points;
添加回答
举报
0/150
提交
取消