私が持っているArrayList
のをCar
:
ArrayList<Car> cars = new ArrayList<Car>();
私のonCreate
メソッドにMainActivity.java
AsyncTaskを入力します。
new fillCars().execute();
私が欲しいのは、このArrayListcars
をModifyCars.java
。という名前の他のクラスで使用することです。私の問題AsyncTask
は、メソッドonCreate
で実行された後、すべてのクラスMainActivity.java
でArrayListcars
がいっぱいになり、その中のデータを使用できることですが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
クラスでcars
ArrayList(もちろんfilled)を使用するにはどうすればよいですModifyCars.java
か?私は何が間違っているのですか?
私はインターネットで検索しましたが、何も役に立ちませんでした。どんな助けでも本当にありがたいです。
前もって感謝します!
MainActivityの新しいインスタンスを作成しているため、そこに空の配列リストが表示されます。それに対する簡単な解決策は、あなたのアリアリストを静的にして、以下のようにそれにアクセスすることです、
MainActivityで:
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");
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加