通过意图通过捆绑

时间:2012-10-08 23:06:53

标签: java android hashmap

我正在尝试将数据存储到一个包中并启动一个新活动。然后在新活动中我想要取消广播数据。铸造部件的代码如下:

Intent i = new Intent(MainActivity.this, ShowProductActivity.class);
Bundle bundle = new Bundle();
// Getting adapter of the listview
SimpleAdapter adapter = (SimpleAdapter ) mListView.getAdapter();
bundle.putSerializable("param1",  ((HashMap<String, Object>) adapter.getItem(position)));
i.putExtras(bundle);
startActivity(i);

通常,数据包中包含的数据如下:

Bundle[{param1={position=0, image=2130837504, flag=/data/data/com.example.app/cache/wpta_0.jpeg, price=Brand : Dash Price : 27}}]

如何将上述数据检索到第二个活动中?我正在使用以下代码块,但我无法访问这些属性。

Bundle bundle = this.getIntent().getExtras();
HashMap<String, Object> param1 = (HashMap<String, Object>)bundle.getSerializable("param1");

1 个答案:

答案 0 :(得分:2)

我不相信你需要创建一个Bundle来传递一个Serializable,只需将Serializable直接放入Intent extras:

i.putExtras("param1", ((HashMap<String, Object>) adapter.getItem(position)));

如果您必须使用中间版套件,请查看Bundle#putExtras(Bundle bundle)的文档:

  

向intent添加一组扩展数据。键必须包含包前缀,例如app com.android.contacts将使用“com.android.contacts.ShowAll”这样的名称。