如何将一组对象从一个活动发送到另一个活动?
问题描述:
我有一个像这样的类:
Class persona implements Serializable {
int age;
String name;
}
我的第一个Activity填充数组:
And my first Activity fill an array:
persona[] p;
然后,我在另一个活动中需要此信息。 如何发送?
Then, I need this info in another Activity. How I can send it?
我尝试制作:
Bundle b = new Bundle();
b.putSerializable("persona", p);
但是我不能。
答
AFAIK是无法将可序列化数组放入束中的任何方法,这里是使用包裹的解决方案
AFAIK the is no method that put a serializable array into bundle any way here is a solution to use that uses parcel
import android.os.Parcel;
import android.os.Parcelable;
public class persona implements Parcelable {
int age;
String name;
public static final Parcelable.Creator<persona> CREATOR = new Creator<persona>() {
@Override
public persona[] newArray(int size) {
// TODO Auto-generated method stub
return new persona[size];
}
@Override
public persona createFromParcel(Parcel source) {
// TODO Auto-generated method stub
return new persona(source);
}
};
public persona(Parcel in) {
super();
age = in.readInt();
name = in.readString();
}
public persona() {
super();
// TODO Auto-generated constructor stub
}
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(age);
dest.writeString(name);
}
}
然后可以将数组发送为
Bundle b = new Bundle();
b.putParcelableArray("persona", p);
btw使用Parcelable而不是Serializable在Android中更有效
btw using Parcelable instead of Serializable is more efficient in Android