将arraylist <object>发送到android中的另一个活动

时间:2017-04-18 10:03:55

标签: android listview android-intent

我在android listview中有一组值。当我点击提交按钮我希望在另一个活动中获得整个列表。我尝试使用intent.putExtra();但我得到了以下错误。

java.lang.RuntimeException: Parcel: unable to marshal value com.example.technical14.recyclers.Planet@4011368 

我的代码是 -

proceed.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {

        ArrayList<Planet> apl = planetsList;
        Intent intent = new Intent(MainActivity.this, Proceed.class);
        intent.putExtra("QuestionListExtra", apl);

        startActivity(intent);
    }
});

我是android的新手。所以请帮助我。

2 个答案:

答案 0 :(得分:2)

使用http://parcelabler.com/

制作Planet Parcelable

然后使用

发送
intent.putExtra("QuestionListExtra", apl);

Proceed活动

ArrayList<Planet> list = getIntent().getParcelableArrayListExtra("QuestionListExtra");

答案 1 :(得分:2)

找到解决方案

  1. 您的模型类应该实现Parcelable:

     public class Planet implements Parcelable {
    
    // Your setter and getter methods
     }
    
  2. 将你的集会者放到putExtra():

    ArrayList<Planet> contactList = // planets data;
    Intent intent = new Intent(this,DisplayContact.class);
    intent.putExtra("Contact_list", contactList);
    startActivity(intent);
    
  3. 3.在第二项活动中:

        ArrayList<ContactClass> myList = getIntent().getParcelableExtra("Contact_list");