Android默认是不能在Bundle里传递Map对象,所以需要将Map对象序列化。首先构造一个SerializableMap类:
public class SerializableMap implements Serializable {
private Map<String,String> map;
public Map<String, String> getMap() {
return map;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
}
然后使用Bundle封装序列化后的Map
final SerializableMap myMap=new SerializableMap();
myMap.setMap(map);
Bundle bundle=new Bundle();
bundle.putSerializable("map",myMap);
Intent intent=new Intent(MainActivity.this,ContentActivity.class);
intent.putExtras(bundle);
startActivity(intent);
最后在接收端获取SerializableMap类
Bundle bundle=getIntent().getExtras();
SerializableMap serializableMap=(SerializableMap)bundle.get("map");
Map<String,String> map=serializableMap.getMap();