我已经在这两个类中给出了可序列化的实现,但是我
无法编组..调用函数中出现运行时错误
线路启动活动。请帮忙如何继续!
既然你正在使用可串行化,你不能像现在一样这样做。我建议你将 ArrayList 包装到类中,例如名为数据包装器。这个类还需要实现Serialized,然后你就可以通过Intent传递ArrayList。
Example:
public class DataWrapper implements Serializable {
private ArrayList<Parliament> parliaments;
public DataWrapper(ArrayList<Parliament> data) {
this.parliaments = data;
}
public ArrayList<Parliament> getParliaments() {
return this.parliaments;
}
}
和一个用法:
Intent i = new Intent(...);
i.putExtra("data", new DataWrapper(yourArrayList));
并检索:
DataWrapper dw = (DataWrapper) getIntent().getSerializableExtra("data");
ArrayList<Parliament> list = dw.getParliaments();
Note:
还有一个选项可以使用可分包界面。如果您要使用它,您可以使用以下方法放置和检索 ArrayList:
intent.putParcelableArrayListExtra("key", ArrayList<T extends Parcelable> list);
getIntent().getParcelableArrayListExtra("key");
通常建议使用 Parcelable 接口,该接口直接指定用于通过 Activity 传递对象,但我通常使用 Serialized 接口,它总是会出现问题。
还要注意拼写错误。您正在将对象与键一起放置task
你应该用same key而不是任务列表。