通過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中獲取對象
同樣,在數據接收端也要獲取對象