Android Activity之间传递数据
程序员文章站
2022-03-30 09:03:44
...
一、传递基本类型数据
这个比较简单,Intent都有提供相应的接口方法,直接调用即可。
二、传递对象(主要是实现对象序列化)
如果想要传递对象的话,一般情况下就两种方法,Serializable方式,Parcelable方式。
http://blog.csdn.net/wei_lei/article/details/50515093
三、传递Map和ArrayList
1.ArrayList的话有直接的接口方法可以调用
发送 intent.putStringArrayListListExtra(String name,ArrayList<String>value);不过这个方法指定了类型只能是String.
不过上面讲到了如何传递对象,那么只要将实例对象进行序列化,再把整个ArrayList进行传递就可以了。
intent.putExtra("name",arrayList);
getIntent.getSerializableExtra("name");
2.HashMap传递
原理也是定义一个类实现序列化
public class SerMap implements Serializable {
public HashMap<Integer,Bean> map;
public SerMap(){
}
public HashMap<Integer, Bean> getMap() {
return map;
}
public void setMap(HashMap<Integer, Bean> map) {
this.map = map;
}
}
将需要传递的map,通过setMap()方法传入,最后再将SerMap对象发送出去
SerMap serMap=new SerMap();
//传递map到SerMap 中的map,这样数据就会传递到SerMap 中的map中。
serMap.setMap(resultMap);
//创建Bundle对象,存放实现可序列化的SerMap
Bundle bundle=new Bundle();
bundle.putSerializable("name",serMap); intent.put(bundle); startActivity(intent);
在需要接收的地方接收数据
Bundle bundle = intent.getExtras();
SerMap serializableMap = (SerMap) bundle
.get("name");
HashMap<Integer,Bean> resultMap = serializableMap.getMap();
上一篇: 中国标准时间转换为yyyy-MM-dd
下一篇: js 中国标准时间转时分秒