将 ArrayList 的 ArrayList 传递给另一个类
Posted
技术标签:
【中文标题】将 ArrayList 的 ArrayList 传递给另一个类【英文标题】:pass ArrayList of ArrayList to another class 【发布时间】:2021-05-06 07:31:22 【问题描述】:如何传递ArrayList
的ArrayList
,比如我创建了一个对象。
例如,
我有一个班级OperationInfo
,我需要将ArrayList<ArrayList<OperationInfo>>
传递给其他班级。我的OperationInfo
类是可打包的。
但似乎intent
不允许我们使用putParcelableArrayListExtra
传递列表列表
有没有办法将列表传递给另一个类?
【问题讨论】:
一种方法,您可以将其序列化为 json 字符串,将其传递并反序列化回所需的 list ,虽然与 parcel 相比效率不高,但可以。 在putextra中使用hashmap 【参考方案1】:我猜你可以手动循环遍历列表并将每个子列表保存到包中,同时将键作为索引以及总数
Bundle data = new Bundle();
data.putInt("size", mainList.size);
int key = 0;
for(ArrayList<OperationInfo> operationInfoList: mainList)
data.putParcelableArrayListExtra(""+ (key++), operationInfoList)
通过上述捆绑并在接收端
ArrayList<ArrayList<OperationInfo>> decodedList = new ArrayList<>();
int size = getIntent().getIntExtra("size", 0);
for(int key = 0; key < size; key++)
decodedList.add(getIntent().getParcelableArrayListExtra(""+(key--)));
【讨论】:
【参考方案2】:只需使用 intent.putExtra() 并传递您的 parceable arraylist。
在其他活动中得到这样的arraylist
getIntent().getParcelableExtra("param_name");
【讨论】:
以上是关于将 ArrayList 的 ArrayList 传递给另一个类的主要内容,如果未能解决你的问题,请参考以下文章