通过intent方式传递
(1)传递字符串等
发送端activity
接收端activity
(2)传递一个对象法1(Serializable是java中自带的方法数据存在内存中)
传递activity中的代码,并且传递的对象必须接上Serializable这个接口如第二个图
接收activity代码
(3)传递一个对象法2(Serializable是android的方法数据存在运行内存中)
这个方法比较麻烦在需要用到的这个对象中必须写底层代码
public class Obj2 implements Parcelable{
private String name;
private String age;
public void setAge(String age) {
this.age = age;
}
public String getAge() {
return age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int describeContents() {
return 0;
}
public static Parcelable.Creator<Obj2> CREATOR = new Creator<Obj2>() {
@Override
public Obj2 createFromParcel(Parcel source) { //写出值
Obj2 obj2 = new Obj2();
obj2.setName(source.readString()); //在写入值过程中先写入了name后写了age
//所以在写出值这个也要遵循这个顺序
obj2.setAge(source.readString());
return obj2;
}
@Override
public Obj2[] newArray(int size) {
// TODO Auto-generated method stub
return null;
}
};
@Override
public void writeToParcel(Parcel dest, int flags) {//写入值
dest.writeString(name);
dest.writeString(age);
}
}
传入数据的activity和第一种方法一致
传出数据也是一致的
通过静态变量传递数据
单独设置一个类放静态变量
在传入数据的activity中将带有数据的对象传给这个静态变量,之后取出即可。
值得注意的是必须在这个取出数据的activity中将这个静态变量中的数据清空
通过全局对象传递数据
首先须要将你要传递的对象继承application
在数据数据的activity中获取对象
同样,在数据接收端也要获取对象