因此,我目前有一个员工模型,我想添加一些类似员工“职位”或职位的列表。我一直在寻找方法,但似乎并没有一种很好的方法,这样我就可以通过Serializable
Intent
来传递Bundle
模型。
这是我目前的模型。
public class EmployeeDetails implements Serializable {
int id, status, roleType;
String firstName, lastName, passcode, email;
int[] assignedTables;
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getRoleType() {
return roleType;
}
public void setRoleType(int roleType) {
this.roleType = roleType;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public String getPasscode() {
return passcode;
}
public void setPasscode(String passcode) {
this.passcode = passcode;
}
public int[] getAssignedTables() {
return assignedTables;
}
public void setAssignedTables(int[] assignedTables) {
this.assignedTables = assignedTables;
}
}
建议的帖子是简单的Arraylist
,我已经知道如何使用它。我想要的是传递包含Serializable
的{{1}}。我想将ArrayList
更改为int[]
。
答案 0 :(得分:0)
ArrayList实现Serializable接口。这意味着,如果要将int []更改为ArrayList,则可以通过意图直接传递EmployeeDetails类。
class A implements Serializable {
ArrayList<Integer>a= new ArrayList<Integer>();
}
发送只需:
Bundle b = new Bundle();
A a = new A();
b.putSerializable("AA",a);
Intent i = new Intent(Activity1.this, Activity2.class);
i.putExtra("B",b);
startActivity(i);
答案 1 :(得分:0)
我建议您使用Parcelable,而不要使用 Serializable Parcelable比Serializable接口和Parcelable数组还要快 可以通过Android中的Intent传递。
请勿使用:int[] assignedTables;
使用:private ArrayList<Integer> assignedTables;
此外,实现Parcelable,实现Parcelable后,android将显示错误,只需按红色灯泡图标即可。按alt + Enter(windows),这将实现所需的方法。
查看this article,了解如何实现可包裹性
答案 2 :(得分:0)
这对我有用。 https://stackoverflow.com/a/47053183/10464730
我在ArrayList
内创建了一个EmployeeDetails
,其中将包含另一个实现Serializable
的模型。