您可以保存不仅parcelable领域,例如:
public class ViewModel extends BaseObservable implements Parcelable
{
private ObservableField<String> title = new ObservableField<>();
private ObservableInt count = new ObservableInt();
private ViewModel(Parcel parcel)
{
title.set(parcel.readString());
count.set(parcel.readInt());
}
@Override
public int describeContents()
{
return 0;
}
@Override
public void writeToParcel(Parcel parcel, int flags)
{
parcel.writeString(title.get());
parcel.writeInt(count.get());
}
public static final Creator<ViewModel> CREATOR = new Creator<ViewModel>()
{
@Override
public ViewModel createFromParcel(Parcel in)
{
return new ViewModel(in);
}
@Override
public ViewModel[] newArray(int size)
{
return new ViewModel[size];
}
};
}
但是,如果你想与parcelable工作,你应该实现这个接口为你的类
public class ParcelableString implements Parcelable
{
private String value;
/*Getter, Setter and implementation of Parcelable*/
}
为什么你要混合'BaseObservable'和'ObservableField'(和它的兄弟姐妹)? – pskink
我有扩展BaseObservable并具有ObservableField作为字段的对象。我希望这个对象可以被parcelable,但是observablefields不可以被parcelable –