Android menyediakan tipe: Parcel. Ini digunakan sebagai wadah untuk merangkum data. Data yang dienkapsulasi dapat dikirimkan melalui Intent atau IPC. Selain tipe dasar, hanya kelas yang mengimplementasikan antarmuka Parcelable yang dapat dimasukkan ke dalam Parcel.
Poin-poin penting dalam penerapan Parcelable: ada tiga hal yang perlu diterapkan
1) metode tulisToParcel. Metode ini menulis data kelas ke dalam Parcel yang disediakan secara eksternal. Hal ini dideklarasikan sebagai berikut:
writeToParcel (Tujuan paket, bendera int) Lihat javadoc untuk mengetahui arti parameter tertentu
2) metode deskripsikan Isi. Saya tidak mengerti apa gunanya. Pokoknya Anda bisa mengembalikan 0 saja.
3) Antarmuka Parcelable.Creator Statis. Antarmuka ini memiliki dua metode:
createFromParcel(Parcel in) mengimplementasikan fungsi membuat instance kelas dari dalam
newArray(int size) membuat array bertipe T dan ukuran panjangnya, cukup satu kalimat (return new T[size]) saja. Diperkirakan metode ini digunakan oleh kelas eksternal untuk melakukan deserialisasi array kelas ini.
Aktivitas menerima informasi untuk pengujian:
impor android.app.Activity; impor android.content.Intent; impor android.os.Bundle; impor android.os.Parcelable; pengujian kelas publik memperluas Aktivitas { @Override public void onCreate(Bundle disimpanInstanceState) { super.onCreate(savedInstanceState) ; setContentView(R.layout.main); Maksud i = getIntent(); i.getParcelableExtra("ya"); Sistem.keluar.println("---->"+p.nama); Sistem.keluar.println("---->"+p.peta.ukuran()) ;
Aktivitas yang dikirim:
impor java.util.HashMap; impor android.app.Activity; impor android.content.Intent; impor android.os.Bundle; TestNew extends Aktivitas { @Override public void onCreate(Paket disimpanInstanceState) { super.onCreate(savedInstanceState) ; setContentView(R.layout.main); Maksud maksud = Maksud baru(); Orang p = Orang baru(); HashMap<String,String>(); p.map.put("ya", "ido"); p.name="ok"; niat.putExtra("ya", p); .class); startActivity(niat);
Kelas implementasi parselable:
import java.util.HashMap; import android.os.Parcel; import android.os.Parcelable; kelas publik Orang yang mengimplementasikan Parcelable { public HashMap<String,String> map = new HashMap<String,String> (); @Override public int deskripsikanContents() { return 0; @Override public void writeToParcel(Paket tujuan, bendera int) { dest.writeMap(peta); dest.writeString(nama } public static final Parcelable.Creator<Person> CREATOR = new Parcelable.Creator<Person>() { //Override Creator @Override public Person createFromParcel(Sumber Parcel) { Orang p = Orang baru(); p.map=source.readHashMap(HashMap.class.getClassLoader()); p.name=source.readString(); return p; } @Override public Person[] newArray(int size) { // TODO stub metode yang dibuat secara otomatis return null;