有没有办法通过Bundle将ArrayList <ArrayList<Integer>> floors
传递给另一个活动?
由于
答案 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。