Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK

Cara Passing Data Antara Aktivitas Dengan Android Parcelable

by
Read Time:6 minsLanguages:

Indonesian (Bahasa Indonesia) translation by Hasannudin Amin (you can also view the original English article)

Pengantar

Kita sering harus meneruskan data antara Aktivitas aplikasi Android. Cara mudah untuk melakukan ini adalah dengan Intent.putExtra(), tetapi jika Anda memiliki banyak data terstruktur untuk lulus, Parcelable mungkin menjadi solusi yang lebih baik. Dalam postingan ini saya akan menunjukkan kepada Anda bagaimana Parcelable mempermudah pengkodean kelas untuk berbagi di antara Aktivitas.

Mengapa Parcelable?

Parcelable adalah Antarmuka Android-saja. Ini memungkinkan pengembang untuk membuat serial kelas sehingga propertinya dengan mudah ditransfer dari satu aktivitas ke aktivitas lainnya. Ini dilakukan dengan membaca dan menulis objek dari Parcel, yang dapat berisi data diratakan dalam wadah pesan.

Menciptakan Aktivitas Utama dan Tata Letak

Aktivitas utama kita akan menangani pengumpulan detail buku. Mari kita mulai dengan menyiapkan metode onCreate.

Selanjutnya, buka activity_main.xml untuk mengatur tata letak dan tampilan tampilan. Anda akan membutuhkan dua kolom entri teks dan satu tombol untuk pengiriman.

Seharusnya terlihat seperti ini:

Sekarang buka Aktivitas utama Anda dan tautkan bidang tampilan ke aktivitas Anda. Anda harus melakukannya di dalam metode onCreate() Anda, seperti ini:

Untuk menyelesaikan MainActivity, Anda perlu menyiapkan onClickListener. Ini akan dipanggil setiap kali tombol Submit ditekan. Ketika itu terjadi, rincian yang dimasukkan harus dikumpulkan dan dikirim ke aktivitas berikutnya.

Di sini, Anda menambahkan onClickListener ke contoh Button yang Anda ambil dari tata letak Aktivitas Anda. Kode ini akan dijalankan setiap kali tombol Submit diklik.

Perhatikan bahwa kita hanya meneruskan contoh Book untuk menempatkan Extra(). Seperti yang akan kita lihat nanti, Parcelable mengurus serialisasi data buku ke string sehingga dapat dilewatkan melalui Intent.

Sekarang setelah Akitivitas utama selesai, kita perlu membuat BookActivity Anda serta class Book untuk menyimpan info buku.

Membuat Class Book

Mari buat kelas Book untuk menyimpan info tentang setiap buku.

Kelas ini perlu menerapkan Parcelable. Ini akan memungkinkan passing data dari MainActivity ke BookActivity.

Kita juga akan menambahkan beberapa fungsi pengambil standar dan konstruktor untuk membuat instance kelas dengan cepat.

Tulis ke Parcel

Metode writeToParcel adalah tempat Anda menambahkan semua data kelas Anda ke paket. Ini dilakukan untuk persiapan transfer. Metode ini akan dilewati contoh Parcel yang memiliki sejumlah metode penulisan yang dapat Anda gunakan untuk menambahkan setiap bidang ke paket. Hati-hati: urutan di mana Anda menulis data itu penting!

Di sini adalah bagaimana Anda melakukannya.

Baca Data Kembali Dari Parcel

Sama seperti metode penulisan menangani penulisan data yang akan ditransfer, konstruktor digunakan untuk membaca data yang ditransfer kembali dari Paket serial. Metode ini akan dipanggil pada aktivitas penerima untuk mengumpulkan data.

Begini seharusnya tampilannya:

Aktivitas penerima akan mendapatkan data sebagai string, dan kemudian akan memanggil metode getParcelableExtra untuk memulai proses pengumpulan data. Itu akan memicu konstruktor yang kami definisikan di atas, yang akan mendesentralisasi data dan membuat contoh Book baru.

Parcelable.Creator

Untuk melengkapi kelas Parcelable Anda, Anda perlu membuat instance Parcelable.Creator dan menetapkannya ke bidang CREATOR. Parcelable API akan mencari bidang ini ketika perlu deserialize sebuah instance dari kelas Anda yang telah diteruskan ke komponen lain.

Ini mengikat semuanya bersama. Tugasnya sederhana — ini menghasilkan instance kelas Parcelable Anda dari Parcel menggunakan data parcel yang disediakan. Kreator memanggil konstruktor yang Anda definisikan di atas, memberikannya objek Parcel, dan konstruktor menginisialisasi atribut kelas.

Jika kelas Parcelable Anda akan memiliki kelas anak, Anda harus lebih berhati-hati dengan metode descriptContents(). Ini akan memungkinkan Anda mengidentifikasi child class khusus yang harus dibuat oleh Parcelable.Creator. Anda dapat membaca lebih lanjut tentang cara kerjanya di Stack Overflow.

Aktivitas Buku dan Tata Letak

Sekarang kita dapat menyelesaikan aplikasi kita dengan Aktivitas buku. Lanjutkan dan buat aktivitas kosong baru yang disebut BookActivity. Buat tata letak terlihat seperti yang saya miliki di bawah ini.

Dalam activity_book.xml, Anda hanya membutuhkan dua widget TextView, yang akan digunakan untuk menampilkan judul dan penulis buku.

Sekarang mari kita mengatur aktivitas kita. Aktivitas Anda seharusnya sudah terlihat seperti ini:

Dalam kegiatan ini, Anda ingin menerima data yang dilewatkan dari Aktivitas utama Anda dan menampilkannya pada tampilan Anda. Dengan demikian Anda akan mengambil contoh dari TextView Anda menggunakan id dari set TextView dalam tata letak Anda.

Kemudian, tentu saja, Anda akan memanggil getIntent() karena Anda akan mengambil data dalam aktivitas ini. Data yang akan Anda ambil dikumpulkan dari kelas Buku menggunakan getParcelableExtra(). Selanjutnya, Anda menetapkan nilai TextViews ke data yang Anda kumpulkan. Di sini adalah bagaimana itu dilakukan.

Bangun aplikasi Anda dan luncurkan, dan Anda akan melihat keindahan kecil yang baru saja Anda bangun.

The completed appThe completed appThe completed app

Kesimpulan

Dalam posting ini, Anda telah melihat bagaimana Anda dapat dengan mudah memindahkan objek dari satu aktivitas ke aktivitas lainnya. Anda tidak lagi harus mengambil setiap bidang data yang Anda lewati ke objek Intent secara terpisah, dan Anda tidak harus mengingat nama yang Anda lewati setiap bidang di bawah. Tidak hanya itu, tetapi proses ini lebih cepat dari fungsi serialisasi Java.

Dalam tutorial ini, Anda telah belajar bagaimana menggunakan Parcelable untuk meneruskan data dari satu aktivitas ke aktivitas lainnya. Anda dapat menyelam lebih dalam ke Parcelable dengan memeriksa dokumentasi resmi.

Sementara itu, lihat beberapa posting kita yang lain tentang pengembangan aplikasi Android!

Advertisement
Did you find this post useful?
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.