如何通过意图传递事件的Arraylist

时间:2017-07-28 01:49:09

标签: android android-intent

我正在尝试使用intent将事件列表从一个Activity传递到另一个Activity,这就是我尝试这样做的方式:

活动1上的

ArrayList<Event>  eventsSelected= new ArrayList();
eventsSelected.add(new Event(Color.RED, dateClicked.getTime(), "event1"));
eventsSelected.add(new Event(Color.RED, dateClicked.getTime(), "event2"));
eventsSelected.add(new Event(Color.RED, dateClicked.getTime(), "event3"));
Intent i = new Intent(FirstActivity.this, SecondActivity.class);
i.putExtra("eventsSelected", eventsSelected);
startActivity(i);

但是我没有找到如何在第二次活动中获得它,我尝试了这种方式,但它不起作用:

活动2上的

Intent intent = getIntent();
ArrayList<Event> selectedDates = intent.getStringArrayListExtra("eventsSelected");

4 个答案:

答案 0 :(得分:0)

您需要将Serializable实现为对象类

public class Event implements  Serializable {
}

另外

i.putExtra("eventsSelected",eventsSelected);

答案 1 :(得分:0)

只是为了澄清它是这样运作的

ArrayList<Event> eventsSelected = new ArrayList<Event>();
intent.putExtra("eventsSelected", eventsSelected);

和第二课

ArrayList<Event> eventsSelected = (ArrayList<Event>) getIntent().getSerializableExtra("eventsSelected");

答案 2 :(得分:0)

尝试

UPDATE stuff
SET data=(SELECT TOP 1 data FROM nonsense ORDER BY NewId());

答案 3 :(得分:0)

当您通过Intent传递时,您必须实现类Parcelable或Serializable。  查看我的thisthis个答案。 希望它会帮助你!!