我想在活动之间发送带有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");
答案 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");