将ArrayList传递给新的Activity

时间:2014-02-14 00:40:07

标签: java android arraylist

我是java的新手,我在这里看到了link,我的问题非常相似,但我不明白它是如何工作的。

我有一个带有一些变量的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,比如make = actualmake; 并将所有这些传递给Detail.java

还要在Detail.java上检索此信息,我应该这样做吗?

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

2 个答案:

答案 0 :(得分:2)

我会避免声明像daentech建议的那样公开,因为这会绕过备受好评的Java封装和数据保护机制。而是尝试pedromss'链接。也...

Bundles是另一种选择,看看这个: https://stackoverflow.com/a/6681784/3199478

答案 1 :(得分:-1)

作为链接状态的帖子,您可以将其设为公共静态变量:

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

为了检索Detail.java中的数据,您不需要使用getStringExtra,而只需使用:

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

然后您不需要在意图

中传递ArrayList

然而,这并不遵循java

的最佳实践