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

0
rminaj 2 Май 2019 в 06:31

3 ответа

Лучший ответ

Это то, что сработало для меня. https://stackoverflow.com/a/47053183/10464730

Я создал ArrayList внутри EmployeeDetails, который будет содержать другую модель, которая также реализует Serializable.

0
rminaj 10 Май 2019 в 05:02

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);
0
Jitendra A 2 Май 2019 в 04:12

Вместо использования Serializable я рекомендую использовать Parcelable, потому что Parcelable быстрее, чем Serializable интерфейс и массив Parcelable можно передать через Intent в Android.

Не используйте: int[] assignedTables; использовать: private ArrayList<Integer> assignedTables;

Кроме того, реализуйте Parcelable, и после реализации Parcelable android будет отображать ошибку, просто нажмите на красный значок лампочки. нажмите alt + Enter (windows), и это реализует требуемый метод.

Ознакомьтесь с этой статьей о том, как вы можете реализовать parcelable

0
Animesh Roy 2 Май 2019 в 04:19