Итак, в настоящее время у меня есть модель сотрудника, и я хочу включить что-то вроде списка «должности» или должности сотрудника. Я искал, как это сделать, но не нашел красивого способа передать модель Serializable через IntentBundle.
Это моя текущая модель.
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.
Пожалуйста, проверьте мое редактирование.




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);
Я уже делаю это для EmployeeDetails и хочу знать, как иметь ArrayList или любой Hashmap внутри EmployeeDetails, который будет содержать должность или пост сотрудника.
Как я уже говорил, вам не нужно ничего делать. Класс A в моем примере выше также имеет массив Integer, и весь класс A сериализуем.
Ok. Я попробую это, когда у меня будет время. Спасибо
Instead of using Serializable I recommend using Parcelable because Parcelable is faster than Serializable interface also Parcelable array can be passed via Intent in android.
Не используйте: int[] assignedTables;
использовать: private ArrayList<Integer> assignedTables;
Кроме того, внедрите Parcelable, и после внедрения Parcelable Android покажет ошибку, просто нажмите значок красной лампочки. нажмите alt + Enter (windows), и это реализует требуемый метод.
Прочтите статью эта статья о том, как вы можете реализовать посылки.
Это то, что сработало для меня. https://stackoverflow.com/a/47053183/10464730
Я создал ArrayList внутри EmployeeDetails, который будет содержать другую модель, которая также реализует Serializable.
Возможный дубликат Массив Список объектов через намерение