根本原因:
这是来自IDE的警告,
getSerializableExtra返回
Serializable,并且您尝试转换为
ArrayList<PuntoNota>。如果程序无法将其强制转换为期望的类型,则可能在运行时引发
ClassCastException 。
解决方案: 在android中传递用户定义的对象时,您的类应实现
Parcelable而不是
Serializable接口。
class Puntonota implements Parcelable { private String punto; private String nota; public Puntonota(String punto, String nota) { this.punto = punto; this.nota = nota; } protected Puntonota(Parcel in) { punto = in.readString(); nota = in.readString(); } public String getPunto() { return punto; } public String getNota() { return nota; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(punto); dest.writeString(nota); } public static final Creator<PuntoNota> CREATOR = new Creator<PuntoNota>() { @Override public Puntonota createFromParcel(Parcel in) { return new Puntonota(in); } @Override public PuntoNota[] newArray(int size) { return new PuntoNota[size]; } };}在发送方
ArrayList<PuntoNota> myList = new ArrayList<>();// Fill data to myList here...Intent intent = new Intent();intent.putParcelableArrayListExtra("miLista", myList);在接收方
ArrayList<? extends PuntoNota> listaFinal = getIntent().getParcelableArrayListExtra("miLista");


