0

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

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");
4

1 回答 1

2

我不认为您需要创建一个 Bundle 来传递一个 Serializable,只需将 Serializable 直接放入 Intent 附加组件中:

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

或者,如果您必须使用中间 Bundle,请查看以下文档Bundle#putExtras(Bundle bundle)

向意图添加一组扩展数据。键必须包含包前缀,例如应用程序 com.android.contacts 将使用类似“com.android.contacts.ShowAll”的名称。

于 2012-10-08T23:19:34.263 回答