Tuesday, March 15, 2016

Tip dan Trik Implement Parcelable

Bagi android developer , tentu sudah tidak asing lagi dengan apa itu Parcelable. Yap, Parcelable merupakan suatu interface di Android yang berguna untuk menyimpan atau mengambil kembali sebuah kelas atau object. Ketika kita mengimplement Parcelable maka kita juga harus mengimplement method describeContents() dan writeToParcel(Parcel parcel, int i) , selain itu kita juga harus menambahkan Parcelable implementation yaitu static field bernama CREATOR, yang berfungsi untuk meng-generate objek yang memakai interface Parcelable itu dan sebuah constructor. Sebelum saya mengetahui trik yang super simple ini , dalam meng implement Parcelable , saya selalu melakukannya secara manual , mengetik satu persatu implement di dalam constructor maupun di dalam method writeToParcel
Berikut ini trik trik nys :
Sebelum kita mengimplement Parcelable, kita tulis dulu semua attribute yang digunakan oleh class tersebut. misalnya seperti ini :
public class Pegawai {
    
    String id;
    String name;
    String address;
    Long birthDate;
            
}

Setelah itu baru kita implement Parcelable, Akan muncul lampu merah di pinggir baris code,klik tanda tersebut

klik "implement method" maka akan tergenerate 2 buah method seperti di bawah ini
public class Pegawai implements Parcelable{
    String id;
    String name;
    String address;
    Long birthDate;

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

    @Override
    public void writeToParcel(Parcel parcel, int i) {}
}

Sampai disini masih ada tanda error, klik sekali lagi lampu merah tersebut seperti gambar di bawah ini

klik "add Parcelable implementation" maka , jreng jreng,akan tergenerate otomatis semua implement berdasarkan attribute class tersebut seperti ini :
public class Pegawai implements Parcelable{

    String id;
    String name;
    String address;
    Long birthDate;

    protected Pegawai(Parcel in) {
        id = in.readString();
        name = in.readString();
        address = in.readString();
    }

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

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

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

    @Override
    public void writeToParcel(Parcel parcel, int i) {
        parcel.writeString(id);
        parcel.writeString(name);
        parcel.writeString(address);
    }
}

Perlu diperhatikan bahwa urutan yang ada di writeToParcel dan constructor haruslah sama dan tidak semua tipe data primitif berlaku terhadap tips ini.
Demikian tips dan trik dari saya , semoga bermanfaat :D

No comments:

Post a Comment