2017-07-28 83 views
0

我試圖從一個活動使用意圖另一個傳遞的事件列表,這就是我試圖做它傳遞活動的ArrayList:如何通過一個Intent

上活動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"); 
+0

實現Serializable到您的對象類 –

+0

我沒有清楚地理解如何做到這一點!看到我在Android上新,你可以請解釋更多@JohnJoe –

+0

https://stackoverflow.com/questions/21250339/how-to-pass-arraylistcustomeobject-from-one-activity-to-another –

回答

0

只是爲了澄清是這樣工作的

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

,並在第二類

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

您需要實現Serializable你的對象類

public class Event implements Serializable { 
} 

而且

i.putExtra("eventsSelected",eventsSelected); 
+0

我應該在哪裏放置? –

+0

在你的活動類 –

+0

我沒有一個活動類 –

0

嘗試

Bundle data=getIntent().getExtras() ; 
ArrayList<Event> aaa= (ArrayList<Event>) data.get("eventsSelected"); 
0

你得必須能夠實現類Parcelable或,而你是使其通過Intent Serializable接口。 看看我的thisthis的答案。 希望它能幫助你!