在官方documentation中,我们看到ObservableParcelable
使用String
,如下所示:
public final ObservableParcelable<String> name = new ObservableParcelable<String>();
但是由于String
没有实现Parcelable
,因此不可能编译它。那么如何让我的对象扩展BaseObservable
并且具有可观察的字段并且可以同时进行分类?
答案 0 :(得分:0)
您不仅可以保存可分割的字段,例如:
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*/
}