Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将ArrayList传递给新活动_Java_Android_Arraylist - Fatal编程技术网

Java 将ArrayList传递给新活动

Java 将ArrayList传递给新活动,java,android,arraylist,Java,Android,Arraylist,我是java新手,我在这里看到了这一点,我的问题也很相似,但我不明白这是怎么回事 我有一个带有几个变量的ArrayList,如何填充这些变量并将其传递给新的活动?我的新活动名为Detail.java 我正在创建我的ArrayList作为 public final List<Car> ExtraCars = new ArrayList<Car>(); 我想知道如何用一些随机变量来填充这些额外的内容,比如make=actualmake; 所有这些都将传递给Detail.ja

我是java新手,我在这里看到了这一点,我的问题也很相似,但我不明白这是怎么回事

我有一个带有几个变量的ArrayList,如何填充这些变量并将其传递给新的活动?我的新活动名为Detail.java

我正在创建我的ArrayList作为

public final List<Car> ExtraCars = new ArrayList<Car>();
我想知道如何用一些随机变量来填充这些额外的内容,比如make=actualmake; 所有这些都将传递给Detail.java

为了在Detail.java上检索这些信息,我应该这样做吗

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

由于post you链接状态,您可以将其设置为公共静态变量:

public static List<Car> ExtraCars = new ArrayList<Car>();
然后,不需要在intent中传递ArrayList


然而,这并没有遵循java的最佳实践,我会避免像daentech建议的那样公开声明任何内容,因为这绕过了备受赞誉的java封装和数据保护机制。相反,请尝试pedromss的链接。还有

捆绑包是另一个选项,请查看以下内容:

看看这是否对您有帮助:谢谢,我将阅读这篇文章,只需在类中声明一个公共函数,该函数将它包含在参数中。或者把它作为额外的意图来传递。或者其他一百万种方式。你想得太多了。活动仍然是一门课。这取决于你如何以及何时需要信息来构建它。糟糕的实现,违反了OOP的一些最有价值的原则,增加了耦合性,容易出错,内聚性低,并且不封装……这里的答案也是这样的,并且引用了Android文档中的一个公共静态字段。如果你看一下列表的底部,有一个答案的得票率比实际接受的多两倍,这是正确的方法,以这种方式引用静态是蹩脚代码的第一步……我道歉。这是一种更好的方法:)谢谢daentech,完全值得,我知道它对私有和公共有一些限制,但我对java不是太熟悉,这对我来说不是问题,我希望我的老师也不是问题。非常感谢!
public static List<Car> ExtraCars = new ArrayList<Car>();
String make = MainActivity.ExtraCars.get(index).make;