使用 Realm for Android 我有一堂课:
public class Entry extends RealmObject implements Parcelable {
...
}
Parcelable
接口包含类似的方法describeContents()
, writeToParcel()
RealmObjects 不应该有除 getter 和 setter 之外的方法:
错误:(81, 17) 错误:仅应在模型类中定义 getter 和 setter
我怎样才能让这两者一起工作?有没有比创建一个单独的类更好的方法(也许类似RealmEntry
)?这样做会导致大量重复代码。
2016 年 5 月更新:这个答案现在已经过时了,除非您已经使用 Parceler。 @Henrique de Sousa 的解决方案要好得多。
实际上,有一个解决方法。如果您愿意使用第三方库(Parceler),您可以获得您想要的结果Parcelable
一代。看我对另一个问题的回答,为方便起见,在下面引用。
With 包裹器 v0.2.16, 你可以这样做:
@RealmClass // required if using JDK 1.6 (unrelated to Parceler issue)
@Parcel(value = Parcel.Serialization.BEAN, analyze = { Feed.class })
public class Feed extends RealmObject {
// ...
}
然后,使用Parcels.wrap(Feed.class, feed)
代替Parcels.wrap(feed)
无处不在,否则你的应用程序将会崩溃org.parceler.ParcelerRuntimeException: Unable to create ParcelableFactory for io.realm.FeedRealmProxy
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)