我正在尝试将数据存储到一个包中并启动一个新活动。然后在新活动中我想要取消广播数据。铸造部件的代码如下:
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");
答案 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”这样的名称。