gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:13:52 25 4
gpt4 key购买 nike

好吧,我试图将对象数组列表从一个 Activity 传递到另一个 Activity 。我在类(class)学生中有 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;}
}

但我面临的问题是我将如何使用 parcelable 来做到这一点?我将如何设置类中变量的值,就像我对 Serializable 所做的那样?我的意思是分别使用 2 个构造函数——一个没有 ID,另一个没有 ID?

最佳答案

您是否阅读过 Parcelable 的工作原理?

您只需要一个 parcelable 的构造函数来读取您传递给它的内容,Parcelable 接口(interface)将添加一个方法 writeToParcel 把要保存的数据。

它不是像Serializable那样的自动过程,一切由你决定。

Parcelable 将使用的构造函数将只接受一个参数 Parcel ,您会在其中找到一些方法,例如 read*(KEY) 来读取返回值。

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

Parcelable 不关心您的构造函数或字段。

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

关于java - 如何将 Parcelable 用于具有多个构造函数的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23998751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com