我已经阅读了Parcelable的文档,我只能找到原始数据类型的读和写函数。
如何读写对象数据类型的数据?
我指的“对象”是java.lang.Object
我是Android的新手,所以大家都很感激我。
发布于 2013-10-17 10:53:43
如何读写对象数据类型的数据?
因此,官方建议使用Parcelable接口通过活动传递数据,但也有提供相同解决方案的可序列化接口。
现在,许多人可能不同意我的观点,但我建议您使用序列化接口,现在您可以通过活动以非常简单的方式序列化对象(以及自定义对象)。
您所需要的是使用可序列化的接口。
public class MyObjectsWrapper implements Serializable {
private Object obj1;
private Object obj2;
private MyCustomObject customObject;
// getters and setters
}
还有一种用法:
// inserting data to Intent
Intent i = new Intent(context, Target.class);
i.putExtra("key", myObj);
// retrieving
MyObject obj = getIntent().getSerializableExtra("key");
我推荐可序列化接口的原因是,对于实现和理解来说,这要简单得多。Parcelable接口需要编写更多的代码(对我来说很烦人),在有很多对象的情况下,实现它需要时间,时间就是金钱:)
发布于 2016-06-21 03:08:41
public class Teacher implements Parcelable {
String name;
int age;
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.name);
dest.writeInt(this.age);
}
public Teacher() {
}
protected Teacher(Parcel in) {
this.name = in.readString();
this.age = in.readInt();
}
public static final Creator<Teacher> CREATOR = new Creator<Teacher>() {
@Override
public Teacher createFromParcel(Parcel source) {
return new Teacher(source);
}
@Override
public Teacher[] newArray(int size) {
return new Teacher[size];
}
};
}
https://stackoverflow.com/questions/19424500
复制相似问题