[英]How can I access to an ArrayList from another class?
我有一个Car
的ArrayList
:
ArrayList<Car> cars = new ArrayList<Car>();
我用 AsyncTask 填充MainActivity.java
onCreate
方法:
new fillCars().execute();
我想要的是在名为ModifyCars.java
其他类中使用这个 ArrayList cars
。 我的问题是,在AsyncTask
之后,它在onCreate
方法上执行,在所有类MainActivity.java
,ArrayList cars
已填充,我可以使用其中的数据,但是当我将其传递给ModifyCars.java
,它的大小等于0
.
我用来传递这个ArrayList
的方法是创建类MainActivity.java
的空构造函数并创建一个 get 方法。 在类ModifyCars.java
我创建了一个MainActivity
对象并尝试使用我之前创建的 get 方法。 这是我用于此目的的代码:
在MainActivity.java
public MainActivity(){
}
//Here the method onCreate
public ArrayList<Car> getCars(){
return cars;
}
在ModifyCars.java
MainActivity MA = new MainActivity();
Log.d("prove",Integer.toString(MA.getCars().size())); //Here the size it's 0
如何在我的ModifyCars.java
类中使用我的cars
ArrayList(当然,已填充)? 我究竟做错了什么?
我在互联网上搜索,但对我没有任何用处。 任何帮助将不胜感激。
提前致谢!
您正在创建 MainActivity 的一个新实例,这就是您在那里获得空数组列表的原因。 一个简单的解决方案是使您的 arryalist 静态并按如下方式访问它,
在主活动中:
static ArrayList<Car> cars = new ArrayList<Car>();
ArrayList<Car> myCars = MainActivity.cars
但是一个标准的方法是,将数组列表发送到 ModifyCars 活动,同时通过如下意图调用它,
Intent i = new Intent(this, ModifyCars.class); i.putExtra("CAR_ARRAY_LIST", this.cars); startActivity(i);
在 ModifyCars 活动中,您应该将其从意图中提取为,
Intent i = getIntent(); ArrayList<Car> myCars = (ArrayList<Car>) i.getSerializableExtra("CAR_ARRAY_LIST");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.