8

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?

Javacadabra
  • 5,578
  • 15
  • 84
  • 152

6 Answers6

12

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

http://www.anddev.org/novice-tutorials-f8/simple-tutorial-passing-arraylist-across-activities-t9996.html

DLJ
  • 333
  • 2
  • 6
  • 19
ρяσѕρєя K
  • 132,198
  • 53
  • 198
  • 213
  • 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
6

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");
Dipak Keshariya
  • 22,193
  • 18
  • 76
  • 128
3

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

keyser
  • 18,829
  • 16
  • 59
  • 101
AAnkit
  • 27,299
  • 12
  • 60
  • 71
0

yes, it is possible... You need to implement Serializable class by your object class.

Sushrita
  • 725
  • 10
  • 29
Richa
  • 3,165
  • 1
  • 22
  • 26
0

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.

Adrián Rodríguez
  • 1,836
  • 15
  • 16
0

You can make the arraylist static where you are defining it, and only pass the position to the next activity

chinmay2312
  • 103
  • 1
  • 2
  • 8