Итак, в настоящее время у меня есть модель сотрудника, и я хочу включить что-то вроде списка «должности» или должности сотрудника. Я искал, как это сделать, но, похоже, нет ничего хорошего, чтобы я мог пропустить модель 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
, содержащий ArrayList
. Я хотел изменить это int[]
на ArrayList
.
3 ответа
Это то, что сработало для меня. https://stackoverflow.com/a/47053183/10464730
Я создал ArrayList
внутри EmployeeDetails
, который будет содержать другую модель, которая также реализует Serializable
.
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);
Вместо использования Serializable я рекомендую использовать Parcelable, потому что Parcelable быстрее, чем Serializable интерфейс и массив Parcelable можно передать через Intent в Android.
Не используйте: int[] assignedTables;
использовать: private ArrayList<Integer> assignedTables;
Кроме того, реализуйте Parcelable, и после реализации Parcelable android будет отображать ошибку, просто нажмите на красный значок лампочки. нажмите alt + Enter (windows), и это реализует требуемый метод.
Ознакомьтесь с этой статьей о том, как вы можете реализовать parcelable
Похожие вопросы
Связанные вопросы
Новые вопросы
java
Java - это язык программирования высокого уровня. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег редко используется отдельно и чаще всего используется вместе с [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] и [maven].