1

ArrayList <ArrayList<Integer>> floorsBundle を介して別のアクティビティに渡す方法はありますか?

ありがとう

4

2 に答える 2

6

Bundle を介して ArrayList > floor を別のアクティビティに渡す方法はありますか?

残念ながらそうではありません。

ArrayListネストされていない場合は、 putIntegerArrayList(key, value)and で機能しgetIntegerArrayList(key)ます。

しかし、確かに別のアプローチがあります.1つの可能な方法を説明します.

Serializable インターフェイスを実装するクラスを作成し、このクラスでフィールドと適切なゲッターを作成するだけです。基本的な例を挙げます。次に、Activity を介して Serializable を渡します。

public class DataHelper implements Serializable {

   private ArrayList<ArrayList<Integer>> floors;

   public DataHelper(ArrayList<ArrayList<Integer>> floors) {
      this.floors = floors;
   }

   public ArrayList<ArrayList<Integer>> getList() {
      return this.floors;
   }
}

バンドルに保存:

Bundle b = new Bundle();
b.putSerializable("floors", new DataHelper(floors));

ターゲット アクティビティで取得します。

getIntent().getExtras().getSerializable("floors");
于 2013-03-10T16:45:28.853 に答える
1

最初のアクティビティから 2 番目のアクティビティに arraylist を渡します。

Intent intent = new Intent(context, SecondActity.class);
intent.putIntegerArrayListExtra("arraylist",integerList);  //integerList is ArrayList<Integer>
startActivity(intent);

2 番目のアクティビティで arrayList を取得します。

ArrayList arrayList<Integer> = getIntent().getIntegerArrayListExtra("arraylist")

ここを読んでください。

アクティビティ間でカスタム オブジェクトを渡したい場合は、このスレッドをお読みください。

于 2013-03-10T16:53:51.873 に答える