Java Android: Mengirim Data List Ke Activity Lain Menggunakan Intent & Parceable

parcelable Bismillah

Untuk mengirimkan data ke Activity Lain kita bisa menggunakan Intent sebagai berikut.

// send
Intent intent= new Intent(OneActivity.this, TwoActivity.class);
intent.putExtra("key","value");

// retrive
String key = getIntent().getStringExtra("key");

Namun kadangkala format data yang kita perlu kirim tidak sederhana, atau dalam kasus ini adalah List. Sayangnya kita tidak bisa serta merta melakukannya seperti sebelumnya.

Untuk mengatasinya, kita bisa implementasikan sebuah interface yang telah disediakan oleh Android yaitu Parcelable, pada model.

Misal:

public class Contact implements Parcelable{ 
   ...
   @Override
    public int describeContents() {
        return 0;
    }

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

    }
}

Nah untuk ngirim data list tersebut caranya kita perlu class Bundle

Bundle bundle = new Bundle();
bundle.putParcelableArrayList("contactList", 
   new ArrayList<Contact>(contactList));
intent.putExtras(bundle);

Dan untuk menerima kiriman tersebut gunakan cara berikut

contactList = intent.getParcelableArrayListExtra("contactList");

Pada contoh ini, variabel contactList saya definiskan sbb.

private List<Contact> contactList = new ArrayList<>();

CMMIW.

# Referensi: Googling, SO, Nyoba2

# Apa beda List vs ArrayList?

One Response
  1. kapalomen

Leave a Reply

Your email address will not be published. Required fields are marked *