FRR*_*FRR 8 java sqlite android realm parcelable
我是Realm for Android的新手,所以我不确定我是以正确的方式接近这个.我有一个看起来像这样的课:
public class Entry extends RealmObject implements Parcelable {
...
}
Run Code Online (Sandbox Code Playgroud)
问题是Parcelable
接口包含类似的方法,describeContents()
writeToParcel()
并且RealmObjects不应该有除getter和setter之外的方法:
Error:(81, 17) error: Only getters and setters should be defined in model classes
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:我如何让这两个一起工作?有没有比创建一个单独的类(可能是类似的RealmEntry
)更好的方法?这样做会导致大量重复的代码......
Vic*_*ani 10
更新2016年5月:除非您已使用Parceler,否则现在的答案已过时.@Henrique de Sousa的解决方案要好得多.
实际上,有一种解决方法.如果您愿意使用第三方库(Parceler)进行Parcelable
生成,则可以获得所需的结果.有关方便,请参阅下面引用的其他问题的答案.
使用Parceler v0.2.16,您可以执行以下操作:
Run Code Online (Sandbox Code Playgroud)@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
.
现在有另一种解决方法:只需实现RealmModel
接口,而不是从扩展RealmObject
:
@RealmClass
public class User implements RealmModel {
}
Run Code Online (Sandbox Code Playgroud)
您可以在Realm文档中找到更多信息。
归档时间: |
|
查看次数: |
7578 次 |
最近记录: |