How can I make my custom objects Parcelable?

后端 未结 11 2556
旧巷少年郎
旧巷少年郎 2020-11-21 07:40

I\'m trying to make my objects Parcelable. However, I have custom objects and those objects have ArrayList attributes of other custom objects I have made.

11条回答
  •  不思量自难忘°
    2020-11-21 08:14

    It is very easy, you can use a plugin on android studio to make objects Parcelables.

    public class Persona implements Parcelable {
    String nombre;
    int edad;
    Date fechaNacimiento;
    
    public Persona(String nombre, int edad, Date fechaNacimiento) {
        this.nombre = nombre;
        this.edad = edad;
        this.fechaNacimiento = fechaNacimiento;
    }
    
    @Override
    public int describeContents() {
        return 0;
    }
    
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(this.nombre);
        dest.writeInt(this.edad);
        dest.writeLong(fechaNacimiento != null ? fechaNacimiento.getTime() : -1);
    }
    
    protected Persona(Parcel in) {
        this.nombre = in.readString();
        this.edad = in.readInt();
        long tmpFechaNacimiento = in.readLong();
        this.fechaNacimiento = tmpFechaNacimiento == -1 ? null : new Date(tmpFechaNacimiento);
    }
    
    public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
        public Persona createFromParcel(Parcel source) {
            return new Persona(source);
        }
    
        public Persona[] newArray(int size) {
            return new Persona[size];
        }
    };}
    

提交回复
热议问题