为了账号安全,请及时绑定邮箱和手机立即绑定

使用ArrayList的ArrayList时读写Parcel

使用ArrayList的ArrayList时读写Parcel

慕田峪9158850 2023-06-28 15:48:56
我也尝试读取和写入这个 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;


查看完整回答
反对 回复 2023-06-28
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信