如何将HashMap
价值从一个Intent传递到另一个Intent?
另外,如何HashMap
在第二个Activity中检索该值?
如何将HashMap
价值从一个Intent传递到另一个Intent?
另外,如何HashMap
在第二个Activity中检索该值?
Answers:
Java的HashMap类扩展了Serializable
接口,使用该Intent.putExtra(String, Serializable)
方法可以轻松将其添加到意图中。
在接收到该意图的活动/服务/广播接收器中,然后
Intent.getSerializableExtra(String)
使用与putExtra一起使用的名称进行调用。
例如,发送意图时:
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put("key", "value");
Intent intent = new Intent(this, MyOtherActivity.class);
intent.putExtra("map", hashMap);
startActivity(intent);
然后在接收活动中:
protected void onCreate(Bundle bundle) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
HashMap<String, String> hashMap = (HashMap<String, String>)intent.getSerializableExtra("map");
Log.v("HashMapTest", hashMap.get("key"));
}
我希望这也行得通。
在发送活动中
Intent intent = new Intent(Banks.this, Cards.class);
intent.putExtra("selectedBanksAndAllCards", (Serializable) selectedBanksAndAllCards);
startActivityForResult(intent, 50000);
在接收活动中
Intent intent = getIntent();
HashMap<String, ArrayList<String>> hashMap = (HashMap<String, ArrayList<String>>) intent.getSerializableExtra("selectedBanksAndAllCards");
当我发送如下的HashMap时,
Map<String, ArrayList<String>> selectedBanksAndAllCards = new HashMap<>();
希望对别人有帮助。