gpt4 book ai didi

android - 将数组列表从一个 Activity 传递到另一个 Activity

转载 作者:行者123 更新时间:2023-11-30 03:29:27 25 4
gpt4 key购买 nike

我正在尝试将完整的数组列表从一个 Activity 传递到另一个 Activity 。

我试过这种方式..

arraylist=new ArrayList<HashMap<String,Object>>();


Intent i= new Intent(ListActivity.this,search.class);
i.putExtra("arraylist", arraylist);
startActivity(i);

谁能帮帮我@谢谢

最佳答案

这将不起作用,因为 Object Java 中的类是不可序列化的。参见 this question解释原因。

Intent.putExtra()方法需要一个实现可序列化接口(interface)的类型,Object 不实现这个,因此它不会工作。我建议不要使用 HashMap<String,Object>您将 Object 替换为实现 Serializable 接口(interface)的更具体的类型。看这个tutorial了解如何做到这一点。

更新

如果您传递的数据很大,那么与序列化和反序列化相关的开销可能会相当大。因此,使用静态单例类来存储数组列表可能是值得的。下面的代码示例显示了如何实现它:

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;
}
}

此处供引用的是 tutorial在静态单例上。

关于android - 将数组列表从一个 Activity 传递到另一个 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17718442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com