如何从之前的意图中获取Arraylist Extra的Hashmap?

时间:2012-11-06 06:18:35

标签: android android-intent

我在旧意图(SaleActivity)中添加了arraylist额外的hashmap

Intent newActivity = new Intent(SaleActivity.this,UpdateActivity.class);
newActivity.putExtra("saleArrList", saleArrList);
startActivity(newActivity);

然后,我从newactivity(UpdateActivity)

获取它
Intent intent= getIntent();
final ArrayList<HashMap<String, String>> saleArrList = intent.get...Extra("saleArrList");

我应该使用什么代码......感谢所有人的回答。

1 个答案:

答案 0 :(得分:1)

当您添加额外内容时,它会将您的数组列表视为Serializable。你应该使用:

Serializable serialized = intent.getSerializableExtra("saleArrList");

不幸的是,将其转换为ArrayList<HashMap<String,String>>会生成有关未经检查的转换的编译器警告。这是由于类型擦除在Java中的工作原理。没有干净简单的方法可以摆脱这种警告。不洁的方法是通过添加

来抑制警告
@SuppressWarnings("unchecked")

位于方法的顶部。这会抑制所有未经检查的转换警告,因此不是特别安全。但是,您可以写:

final ArrayList<HashMap<String, String>> saleArrList =
    (ArrayList<HashMap<String,String>>)intent.getSerializableExtra("saleArrList");