在android中的活动之间传递带有hashmap的arraylist?

时间:2013-07-13 10:39:57

标签: android arraylist hashmap

我想在活动之间发送带有hashmap的arraylist但是给我带有hashmap的null arraylist。

发件人活动

ArrayList<HashMap<String,String>> childgame = new ArrayList<HashMap<String,String>>(); 
Intent ordernow= new Intent(CategoryActivity.this,OrderDetailActivity.class);
ordernow.putExtra("orderlist",childgame);                                     
startActivity(ordernow);

接收者活动

Intent intent = getIntent();
Bundle bundle =intent.getExtras();
bundle.getSerializable("orderlist");

2 个答案:

答案 0 :(得分:6)

使用putExtra(String, Serializable)传递Intent和getSerializableExtra(String)方法中的值以检索数据。

ArrayList实现Serializable

http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html

你已经有了这个

ordernow.putExtra("orderlist",childgame);

获取列表

Intent intent = getIntent();
ArrayList<HashMap<String,String>> list = (ArrayList<HashMap<String, String>>) intent.getSerializableExtra("orderList");   

public Serializable getSerializableExtra (String name)

在API级别1中添加

从意图中检索扩展数据。

参数

name所需项目的名称。

返回

以前使用putExtra()添加的项的值,如果未找到Serializable值,则返回null。

答案 1 :(得分:1)

尝试使用 getIntent().getSerializableExtra("orderlist")

在Receiver方面使用:相同类型的ArrayList来接收数据!

ArrayList<HashMap<String, String>> arl = (ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("orderlist");