2014-02-14 38 views
1

即時通訊新的Java和我在這裏看到這個link和我的問題是非常相似的,但我不知道如何工作。傳遞一個ArrayList到一個新的活動

我有一個ArrayList有幾個變量,我如何填充這些變量並將其傳遞給一個新的活動?我的新的活動被命名爲Detail.java

進出口創造我的ArrayList作爲

public final List<Car> ExtraCars = new ArrayList<Car>(); 

,所以我可以在接下來的活動中使用,林不知道這是否是用最好的方式。

這款車的結構是:

public Car (String make, int year, int iconID, String condition){ 
    super(); 
    this.make = make; 
    this.year = year; 
    this.iconID = iconID; 
    this.condition = condition; 
} 

我想知道怎麼填這個ExtraCars一些隨機變量,如化妝= actualmake; 和所有這些被傳遞給Detail.java

而且我還需要檢索Detail.java上的這些信息嗎?

Intent intent = getIntent(); 
String make = intent.getStringExtra(MainActivity.ExtraCars.make); 
+0

看看這可以幫助你:http://stackoverflow.com/questions/21732520/what-happens-to-an-剛剛被召回/ 21733769#21733769 – pedromss

+0

謝謝,我會讀這 – Guizinhobeback

+0

只是在類中聲明一個公共函數,它在params中。或者將它傳遞給意圖的附加內容。或一百萬其他方式。你正在反思這一點。活動仍然是一個類。這取決於您如何以及何時需要關於如何構建它的信息。 – WIllJBD

回答

-1

當你鏈接狀態後,你可以把一個公共靜態變量:

public static List<Car> ExtraCars = new ArrayList<Car>(); 

爲了檢索Detail.java你不需要getStringExtra數據,而不只是用途:

String make = MainActivity.ExtraCars.get(index).make; 

你不那麼需要傳遞的ArrayList在意向

然而,這不遵循Java的最佳實踐

+0

可怕的實施,違反了OOP的一些最有價值的原則,增加了耦合,容易出錯,內聚力低,並且不封裝... –

+0

答案在這裏http://stackoverflow.com/a/5567079/4739表明相同,並引用Android文檔陳述公共靜態字段。 – daentech

+0

如果你再看一下列表底部,有一個答案比實際接受的答案多兩倍,這是正確的方法來做到這一點,以這種方式引用靜態是蹩腳代碼的第一步... –

2

我會避免宣佈任何公開的東西,如daentech所建議的,因爲這會繞過Java廣受好評的封裝和數據保護機制。而是嘗試一下「pedromss」的鏈接。此外...

捆綁是另一種選擇,也看看這個: https://stackoverflow.com/a/6681784/3199478

相關問題