该类如何实现可分割的权利。我不能做包裹对象类型。字符串, double ,整数,..变量类型设置为对象类型。
public class MyClass implements Parcelable {
public String Name;
public Object Value; //variables type to set
protected MyClass(Parcel in) {
Name = in.readString();
//Value = in.?
}
public static final Creator<MyClass> CREATOR = new Creator<MyClass>() {
@Override
public MyClass createFromParcel(Parcel in) {
return new MyClass(in);
}
@Override
public MyClass[] newArray(int size) {
return new MyClass[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(Name);
//dest.
}
}
最佳答案
可能我来得太晚了,但这可能会帮助其他人寻找相同的东西。
由于 Object 类未实现 Parcelable,因此需要一种解决方法。我克服这个障碍的一种方法是使用 GSON 并对 String 和 String 进行序列化和反序列化。
例如:
public class MyClass implements Parcelable {
public String Name;
public Object Value; //variables type to set
protected MyClass(Parcel in) {
Name = in.readString();
Value = new Gson().fromJson(in.readString(), Object.class);
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(Name);
dest.writeString(new Gson().toJson(Value));
}
}
- 写入parcel时,使用GSON将对象(序列化)转换为JSON字符串,并将其作为字符串写入parcel。
- 在从包中读取包时,将包读取为 String 并再次使用 Gson 将其转换(反序列化)为 Object 类。
关于java - 如何在Java中Parcelable类中打包Object类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47710880/