问题描述
如何传递 ArrayList
的 ArrayList
,例如我创建了一个对象。
例如
我有一个类 OperationInfo
,我需要将 ArrayList<ArrayList<OperationInfo>>
传递给其他类。我的 OperationInfo
课程是可打包的。
但似乎 intent
不允许我们使用 putParcelableArrayListExtra
有没有办法将列表列表传递给另一个类?
解决方法
我想您可以手动循环遍历列表并将每个子列表保存到包中,同时将键作为索引和总数
Bundle data = new Bundle();
data.putInt("size",mainList.size);
int key = 0;
for(ArrayList<OperationInfo> operationInfoList: mainList){
data.putParcelableArrayListExtra(""+ (key++),operationInfoList)
}
通过上面的bundle并在接收端
ArrayList<ArrayList<OperationInfo>> decodedList = new ArrayList<>();
int size = getIntent().getIntExtra("size",0);
for(int key = 0; key < size; key++){
decodedList.add(getIntent().getParcelableArrayListExtra(""+(key--)));
}
,
只需使用 intent.putExtra() 并传递您的可解析数组列表。
并在其他活动中像这样获取arraylist
getIntent().getParcelableExtra("param_name");