如何将Parcelable用于具有多个构造函数的类?

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?

Mar*_*rno 5

你读过Parcelable的工作原理了吗?

你只需要一个constrcutor为parcelable阅读您传递给它的东西,Parcelable界面会添加一个方法writeToParcel,其中把数据保存.

这不是一个自动过程Serializable,一切都取决于你.

Parcelable将使用的构造函数将只接受一个参数Parcel,您将找到一些方法read*(KEY)来回读值.

并且writeToParcel您将在Parcel(方法的参数)中写入要传递的值write*(KEY, VALUE).

Parcelable 不关心你的构造函数或字段.

PS你也需要一个CREATOR.如果需要,请在线阅读一些教程以了解更多信息.