首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >RealmObject与Parcelable

RealmObject与Parcelable
EN

Stack Overflow用户
提问于 2014-12-01 15:05:38
回答 5查看 8.5K关注 0票数 8

我刚进入Android领域,所以我不确定我是否用正确的方式来处理这个问题。我有一门课是这样的:

代码语言:javascript
运行
复制
public class Entry extends RealmObject implements Parcelable {
    ...
}

问题是,Parcelable接口包含诸如describeContents()writeToParcel()和RealmObjects之类的方法,除了getter和setter之外,不应该有其他方法:

代码语言:javascript
运行
复制
Error:(81, 17) error: Only getters and setters should be defined in model classes

所以我的问题是:我怎样才能把这两者结合起来?有没有比创建一个单独的类更好的方法(也许类似于RealmEntry)?这样做会导致大量重复的代码.

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-05-20 16:40:51

现在有一个不同的解决方法:只实现RealmModel接口,而不是从RealmObject扩展

代码语言:javascript
运行
复制
@RealmClass
public class User implements RealmModel {

}

您可以在领域文档中找到更多信息。

票数 5
EN

Stack Overflow用户

发布于 2015-04-18 20:05:14

更新2016年5月:,这是答案,现在已经过时了,除非你已经使用了Parceler。@Henrique de Sousa的解决方案要好得多。

实际上,有个解决办法。如果您愿意为Parcelable生成使用第三方库(Parceler),则可以获得所需的结果。为了方便起见,请参阅下面引用的我对另一个问题的回答

使用Parceler v0.2.16,您可以这样做: @RealmClass //如果使用JDK1.6(与Parceler问题无关) @Parcel(value = Parcel.Serialization.BEAN,analyze ={ Feed.class })公共类提要扩展RealmObject { // .} 然后,在任何地方使用Parcels.wrap(Feed.class, feed)而不是Parcels.wrap(feed),否则应用程序将与org.parceler.ParcelerRuntimeException: Unable to create ParcelableFactory for io.realm.FeedRealmProxy崩溃。

票数 10
EN

Stack Overflow用户

发布于 2014-12-03 09:34:06

目前还不可能在RealmObjects上实现Parcelable。一种解决方案是使用两个领域文件:默认的一个作为对象存储,一个专门用于临时保存用于旋转等等。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27231259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档