android如何用Intent传递一个List<HashMap<String, String>>,请给出代码
时间: 2024-02-13 20:05:16 浏览: 181
可以通过将List<HashMap<String, String>>转换为ArrayList<Bundle>,然后将ArrayList<Bundle>传递给Intent来传递List<HashMap<String, String>>。具体代码如下:
```
List<HashMap<String, String>> dataList = new ArrayList<HashMap<String, String>>();
// 添加数据到dataList中
ArrayList<Bundle> bundleList = new ArrayList<Bundle>();
for (HashMap<String, String> data : dataList) {
Bundle bundle = new Bundle();
for (String key : data.keySet()) {
bundle.putString(key, data.get(key));
}
bundleList.add(bundle);
}
Intent intent = new Intent(context, TargetActivity.class);
intent.putParcelableArrayListExtra("dataList", bundleList);
```
这里将List<HashMap<String, String>>转换为了ArrayList<Bundle>,然后将ArrayList<Bundle>传递给了Intent。在接收端,可以通过以下代码获取数据:
```
ArrayList<Bundle> bundleList = getIntent().getParcelableArrayListExtra("dataList");
List<HashMap<String, String>> dataList = new ArrayList<HashMap<String, String>>();
for (Bundle bundle : bundleList) {
HashMap<String, String> data = new HashMap<String, String>();
for (String key : bundle.keySet()) {
data.put(key, bundle.getString(key));
}
dataList.add(data);
}
```
这里将ArrayList<Bundle>转换回List<HashMap<String, String>>。
阅读全文