sha*_*007 0 java android parcelable
好吧,我试图将对象的arraylist从一个活动传递到另一个活动.我在班级学生中有2个构造函数.如果,我使用,Serializable比代码如下所示:
@SuppressWarnings("serial")
public class Student implements Serializable
{
private int studentdID;
private String studentName;
private String studentDept;
public Student(){}
public Student(String name, String dpt)
{ this.studentName = name;
this.studentDept = dpt;}
public Student(int id, String name, String dpt)
{ this.studentdID = id;
this.studentName = name;
this.studentDept = dpt; }
public int getstudentdID() { return studentdID; }
public void setstudentdID(int studentdID) {this.studentdID = studentdID;}
public String getstudentName() { return studentName;}
public void setstudentName(String studentName) {this.studentName = studentName;}
public String getstudentDept() { return studentDept; }
public void setstudentDept(String studentDept) { this.studentDept = studentDept;}
}
Run Code Online (Sandbox Code Playgroud)
但我面临的问题是我如何用parcelable做到这一点?我如何在类中设置变量的值,就像我使用Serializable一样?我的意思是单独使用2个构造函数 - 一个没有ID而另一个没有ID?
你读过Parcelable的工作原理了吗?
你只需要一个constrcutor为parcelable阅读您传递给它的东西,Parcelable界面会添加一个方法writeToParcel,其中你把数据保存.
这不是一个自动过程Serializable,一切都取决于你.
Parcelable将使用的构造函数将只接受一个参数Parcel,您将找到一些方法read*(KEY)来回读值.
并且writeToParcel您将在Parcel(方法的参数)中写入要传递的值write*(KEY, VALUE).
Parcelable 不关心你的构造函数或字段.
PS你也需要一个CREATOR.如果需要,请在线阅读一些教程以了解更多信息.