Bundle ArrayList <ArrayList <Integer >>

Ang*_*3lo 1 android bundle arraylist

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

谢谢

Sim*_*iak 6

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

不幸的是没有.

如果你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;
   }
}
Run Code Online (Sandbox Code Playgroud)

保存到Bundle:

Bundle b = new Bundle();
b.putSerializable("floors", new DataHelper(floors));
Run Code Online (Sandbox Code Playgroud)

并在目标活动中检索:

getIntent().getExtras().getSerializable("floors");
Run Code Online (Sandbox Code Playgroud)

  • @ρяσѕρєяK你认为putParcelableArrayList?但它需要ArrayList <?exces Parcelable>,它不适用于Integer.我知道Parcelable可能是更好的方式,如何通过活动传递数据,但序列化工作也是如此,主要是更容易理解,需要更少的代码来编写. (2认同)