android传递数据bundle封装传递map对象

转于:http://my.oschina.net/baishi/blog/182931

-------------------------------------------------------------------------------------------

android开发默认情况下,通过Bundle bundle=new Bundle();传递值是不能直接传递map对象的,解决办法:

第一步:封装自己的map,实现序列化即可

01 /**
02  * 序列化map供Bundle传递map使用
03  * Created  on 13-12-9.
04  */
05 public class SerializableMap implements Serializable {
06  
07     private Map<String,Object> map;
08  
09     public Map<String, Object> getMap() {
10         return map;
11     }
12  
13     public void setMap(Map<String, Object> map) {
14         this.map = map;
15     }
16 }

第二步:传递数据:

1 Intent intent=new Intent(ListViewActivity.this,UpdateWatchActivity.class);
2                                 //传递数据
3                                 final SerializableMap myMap=new SerializableMap();
4                                 myMap.setMap(map);//将map数据添加到封装的myMap<span></span>中
5                                 Bundle bundle=new Bundle();
6                                 bundle.putSerializable("map", myMap);
7                                 intent.putExtras(bundle);

第三步:接收数据:

1 Bundle bundle = getIntent().getExtras();
2         SerializableMap serializableMap = (SerializableMap) bundle.get("map");

到此数据就能在通过map传递和使用了。

猜你喜欢

转载自yuemeiqing2008-163-com.iteye.com/blog/2037654