[英]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.