Android 可观察可强制<;字符串>;它不起作用了
在官方版本中,我们看到Android 可观察可强制<;字符串>;它不起作用了,android,android-databinding,Android,Android Databinding,在官方版本中,我们看到observeablearceable与String的用法如下: public final ObservableParcelable<String> name = new ObservableParcelable<String>(); public final observeableparceable name=new observeableparceable(); 但是,由于String没有实现Parcelable,因此不可能编译它。那么,如何
observeablearceable
与String
的用法如下:
public final ObservableParcelable<String> name = new ObservableParcelable<String>();
public final observeableparceable name=new observeableparceable();
但是,由于
String
没有实现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];
}
};
}
为什么要混合使用
BaseObservable
和ObservableField
(及其同级)?我有一个扩展BaseObservable并将ObservableField作为字段的对象。我希望该对象是可包裹的,但可观测场不是可包裹的
public class ParcelableString implements Parcelable
{
private String value;
/*Getter, Setter and implementation of Parcelable*/
}