I am trying to pass an ArrayList of Objects between multiple activities in my application. Is it possible to do this using an Intent using the setData() method?
6 Answers
If you want to send an ArrayList of objects then your class must implement the Parcelable or Serializable interface .
See these good tutorials for sending custom object between Activities
http://androidideasblog.blogspot.in/2010/02/passing-list-of-objects-between.html
-
The first link had clear enough instructions and a working example. Thanks. – cavpollo Nov 26 '14 at 23:20
-
Guys , I have problem I'm getting **TransactionTooLargeException** when I pass large Arraylist Using Parcelable or Serializable . Need help on that. – Bhavin Patel May 13 '17 at 06:45
Use below code for pass arraylist in intent.
Intent mIntent = new Intent(FirstActivity.this, SecondActivity.class);
mIntent.putParcelableArrayListExtra("Data", mArraylist);
startActivity(mIntent);
Use below code For get arraylist from Intent.
Bundle bdl = getIntent().getExtras();
mArraylist1 = bdl.getParcelableArrayList("Data");

- 22,193
- 18
- 76
- 128
First you need to extend parcelable class in your Object class. Then you can pass it through intent via intent.putParcelableArrayListExtra("PASSING_DATA", data);
here data is arraylist of custom objects.
see Parcelable and Parcelable Tutorial for better undertanding
If the objects implement Parcelable you can use the putParcelableArrayList method like this:
Bundle data = new Bundle();
data.putParcelableArrayList("myArrayList", myList);
Intent i = new Intent();
i.putExtra("data", data);
Hope that helps.

- 1,836
- 15
- 16
-
Yes, it works if the objects in the ArrayList implement Parcelable. – Adrián Rodríguez Dec 05 '12 at 11:25
You can make the arraylist static where you are defining it, and only pass the position to the next activity

- 103
- 1
- 2
- 8