i could to pass an arraylist from activity A to Activity B Successfully. AS Shown below :
At activity A :
Intent intent = new Intent(Activity_A.this, Activity_B.class);
intent.putParcelableArrayListExtra("albums", (ArrayList<? extends Parcelable>) albums);
startActivity(intent);
The Model Album is implemented as below:
public class Album implements Parcelable
{
public ArrayList<Song> Songs = new ArrayList<Song>();
public int id;
public String album_name;
public String pic;
public static final Creator<Album> CREATOR = new Creator<Album>()
{
@Override
public Album createFromParcel(Parcel in)
{
return new Album(in);
}
@Override
public Album[] newArray(int size)
{
return new Album[size];
}
};
@Override
public int describeContents()
{
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i)
{
parcel.writeInt(id);
parcel.writeString(album_name);
parcel.writeString(pic);
}
}
As Shown the album contain of arraylist of songs and another data
Here is the implementation of Song Model:
public class Song implements Parcelable
{
public int id;
public String file_name;
public String file_url;
public String pic_url;
public int Album_id;
public static final Creator<Song> CREATOR = new Creator<Song>()
{
@Override
public Song createFromParcel(Parcel in)
{
return new Song(in);
}
@Override
public Song[] newArray(int size)
{
return new Song[size];
}
};
@Override
public int describeContents()
{
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int i)
{
parcel.writeInt(id);
parcel.writeString(file_name);
parcel.writeString(file_url);
parcel.writeString(pic_url);
parcel.writeInt(Album_id);
}
}
}
And to get data passed at At activity B :
Bundle bundle = getIntent().getExtras();
ArrayList<Album> albums = bundle.getParcelableArrayList("albums");
The problem here is that Data is passed successfully From Activity A to Activity B But The list of songs is null with size zero for every album although i checked in activity A that every album has list of songs