Bundle ArrayList <arraylist <integer>&gt; </arraylist <integer>

时间:2013-03-10 16:43:57

标签: android arraylist bundle

有没有办法通过Bundle将ArrayList <ArrayList<Integer>> floors传递给另一个活动?

由于

2 个答案:

答案 0 :(得分:6)

  

有没有办法传递一个ArrayList&gt;地板到   通过Bundle的另一项活动?

不幸的是没有。

如果您没有嵌套ArrayList,则可以使用putIntegerArrayList(key, value)getIntegerArrayList(key)

但肯定有另一种方法。我会用一种可能的方式向你解释。

您可以创建将实现Serializable接口的类,并在此类中创建字段和适当的getter。我会给你一个基本的例子。然后,您将通过活动传递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:

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

并在目标活动中检索:

getIntent().getExtras().getSerializable("floors");

答案 1 :(得分:1)

将arraylist从第一个活动传递到第二个活动。

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

在第二个Activity中获取arrayList。

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

阅读here

如果要在活动之间传递自定义对象,请阅读此thread