Sobes.tech
Junior — Middle

Kaip galima serializuoti objektą perdavimui ar saugojimui Bundle tipo konteineryje?

sobes.tech AI

Atsakymas iš AI

Android'e, objektą perduoti ar saugoti konteineryje, kurio tipas yra Bundle, objektas turi būti serializuojamas. Pagrindiniai serializacijos būdai:

  1. Parcelable — Android optimizuotas sąsaja, leidžia greitai serializuoti objektus.
  2. Serializable — standartinė Java sąsaja, lengviau įgyvendinti, bet mažiau efektyvi našumo požiūriu.

Pavyzdys su Parcelable:

public class User implements Parcelable {
    private String name;
    private int age;

    protected User(Parcel in) {
        name = in.readString();
        age = in.readInt();
    }

    public static final Creator<User> CREATOR = new Creator<User>() {
        @Override
        public User createFromParcel(Parcel in) {
            return new User(in);
        }

        @Override
        public User[] newArray(int size) {
            return new User[size];
        }
    };

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(name);
        dest.writeInt(age);
    }
}

// Naudojimas:
Bundle bundle = new Bundle();
bundle.putParcelable("user", userObject);

Taip, objektas gali būti įdėtas į Bundle ir perduotas tarp Android komponentų.