Passing arraylist of objects between activities

纵饮孤独 提交于 2019-11-25 22:25:50

You should make your Song class implement Parcelable.

Raghunandan

You try the below

intent.putParcelableArrayListExtra("key", ArrayList<T extends Parcelable> list);
startActivity(intent);

Retrieve it

getIntent().getParcelableArrayListExtra("key");

Pass arraylist of user defined objects to Intent android. Check the answer by Sajmon

According to the comments made by Sajmon, Song class has to implement Parcelable

Intent intent=new Intent(ActivityFrom.this,ActivityTo.class);
intent.putExtra("StringKey",arrayList);
startActivity(intent);

and to retrieve

ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("StringKey");
Nirmal
     i.setClass(LatestAlbums.this, AlbumDetails.class);
     i.putStringArrayListExtra("list", your song list);
     startActivity(i);

To get the array list in activity.

ArrayList<String> fetchList= new ArrayList<String>();
fetchList=  getIntent().getStringArrayListExtra("list");

Hope this will help you.

For more reference use this link.

Refers to this question. I hope this example helps you.

1. Your Song class should be implements Parcelable Class

public class Song implements Parcelable { 
//Your setter and getter methods
}

2. Put your arraylist to putParcelableArrayListExtra()

public class ActivityA extends AppCompatActivity {
ArrayList<Song> songs;

@Override
protected void onCreate(Bundle savedInstanceState) {
button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            startActivity(new Intent(getApplicationContext(), ActivityB.class)
            .putParcelableArrayListExtra("songs", (ArrayList<? extends Parcelable>) songs));
        }
    });
}

3. In the ActivityB

public class ActivityB extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    Intent intent = getIntent();
    final ArrayList<Song> songs = intent.getParcelableArrayListExtra("songs");

    //Check the value in the console
    buttonCheck.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            for (Song value : songs) {
                System.out.println(value.getTitle());
            }
        }
    });
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!