这将不起作用,因为Object
Java 中的类不可序列化。有关原因的解释,请参阅此问题。
该Intent.putExtra()
方法需要一个实现可序列化接口的类型,Object 没有实现这个,因此它不会工作。我建议不要HashMap<String,Object>
用实现 Serializable 接口的更具体的类型替换 Object 。请参阅本教程以了解如何执行此操作。
更新
如果您传递的数据很大,则与序列化和反序列化相关的开销可能相当大。因此,可能值得使用静态单例类来存储数组列表。下面的代码示例显示了如何实现这一点:
public class DataStore {
private static final DataStore instance = new DataStore ();
private arraylist = new ArrayList<HashMap<String,Object>>();
//Private constructor
private DataStore () {}
//Class is only accessible through this method
public static Singleton getInstance() {
return instance;
}
//Accessors for your data
private ArrayList<HashMap<String,Object>> getArrayList()
{
return arraylist;
}
private void setArrayList(ArrayList<HashMap<String,Object>> value)
{
arraylist = value;
}
}
作为参考,这里有一个关于静态单例的教程。