在android中,有两种方法可以实现Activity之间的发送和接收对象:
他们一定:
>可序列化(Implion对象为可序列化)
要么
>可打包(将对象作为可打包)
您将需要实现Parcelabel
?并将以下方法添加到类中
以宗地为参数的构造函数
public Telnet(Parcel in) {
readFromParcel(in);
}
覆盖writeToParcel方法
@Override
public void writeToParcel(Parcel dest, int flags) {
// write each field into the parcel. When we read from parcel, they
// will come back in the same order
dest.writeString(strVar); // to write your string variables
dest.writeInt(intVar); // to write your int variables
}
从包裹读取的方法
private void readFromParcel(Parcel in) {
strVar= in.readString();
intVar= in.readInt();
}
包裹创建者
public static final Parcelable.Creator CREATOR =
new Parcelable.Creator() {
public Telnet createFromParcel(Parcel in) {
return new Telnet(in);
}
public Telnet[] newArray(int size) {
return new Telnet[size];
}
};
@Override
public int describeContents() {
return 0;
}
那么您的Telnet类就准备好转移到其他活动了.
现在使用它:
在主要行为中:
Telnet obj = new Telnet();
// Set values etc.
Intent i = new Intent(this, MyActivity.class);
i.putExtra("your.package.Telnet", obj);
startActivity(i);
在第二项活动中:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle b = getIntent().getExtras();
Telnet obj =
b.getParcelable("your.package.Telnet");
}