Tag: 领域

改造+ GSON反序列化+领域关系

最佳实践:关系+ Realm保存的JSON反序列化。 我有以下JSON: { "organizations": [{ "id": 1, "name": "Orga 1" }], "states": [{ "id": 1, "organizationId": 1, "name": "Read" }] } 这里是相应的Kotlin对象: class Organization { @SerializedName("id") @Expose val id: Long? = null @SerializedName("name") @Expose val name: String? = null } class State { @SerializedName("id") @Expose val id: Long? = null @SerializedName("organizationId") @Expose val organizationId: […]

领域executeTransactionAsync不写入数据到数据库

我在我的项目中使用领域数据库。 我想在应用程序第一次启动时,将我的资产文件夹中的JSON数据写入领域。 我使用Kotlin。 我启动我的领域: Realm.init(this) val config = RealmConfiguration.Builder() .rxFactory(RealmObservableFactory()) .build() Realm.setDefaultConfiguration(config) 比我想异步写入List<Data>我的数据库: val realm = Realm.getDefaultInstance() realm.executeTransactionAsync { realm.copyToRealm(skillsList) } realm.close() 但是我的领域db是空的。 realm.copyToRealm(skillsList)我有空表。 哪里不对? 我用Stetho检查桌子,它真的是空的。 我可以修复它?

Gradle和Realm库的编译问题

添加Realm到我的项目后,我正在收到编译问题。 我目前在Android Studio 2.1.3中使用Kotlin。 这是终端的输出: C:\Users\carre\Desktop\MBTA_99\MyApplication>gradlew build To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/2.14.1/userguide/gradle_daemon.html. Incremental java compilation is an incubating feature. :app:preBuild UP-TO-DATE :app:preInstantrunconfigDebugBuild UP-TO-DATE :app:checkInstantrunconfigDebugManifest :app:preInstantrunconfigReleaseBuild UP-TO-DATE :app:prepareComAndroidSupportAppcompatV72301Library UP-TO-DATE :app:prepareComAndroidSupportCardviewV72301Library UP-TO-DATE :app:prepareComAndroidSupportMediarouterV72300Library UP-TO-DATE :app:prepareComAndroidSupportRecyclerviewV72301Library UP-TO-DATE :app:prepareComAndroidSupportSupportV132301Library UP-TO-DATE :app:prepareComAndroidSupportSupportV42301Library UP-TO-DATE :app:prepareComGetkeepsafeRelinkerRelinker121Library UP-TO-DATE […]

在Kotlin Realm Extention中如何解决“功能不属于这个领域的模式的一部分”

我想用Kotlin使用Realm使用这个Kotlin Realm Extention库。 我已经添加mavenCentral()存储库并compile "com.github.vicpinm:krealmextensions:1.2.0"到app.gradle。 当我运行我的应用程序,我得到了这个错误: java.lang.IllegalArgumentException: Feature is not part of the schema for this Realm. Did you added realm-android plugin in your build.gradle java.lang.IllegalArgumentException: Feature is not part of the schema for this Realm. Did you added realm-android plugin in your build.gradle 我试图在app.gradle中添加apply: realm-android ,但它不工作(旁边我认为它应该从库内部调用)。 我还在我的Activity中添加了Realm.init(baseContext) ,因为查询操作需要它。

如何在我的Realm迁移代码中指定一个盒装字段可以为空?

我正在使用Kotlin ,我想向RealmObject添加一个新字段,该字段可以为空。 以下是我在迁移中的情况: val schema = realm.schema.get(ZOLA_NOTIFICATION) if (!(schema?.hasField("agentId") ?: false)) { schema.addField("agentId", Long::class.java) } 但是,运行此迁移时收到错误消息: Non-fatal Exception: io.realm.exceptions.RealmMigrationNeededException Field 'agentId' does not support null values in the existing Realm file. Either set @Required, use the primitive type for field 'agentId' or migrate using RealmObjectSchema.setNullable(). 我如何指定Long::class.java应该是迁移代码中的可空类型?

错误:Parceler:无法找到类型io.realm.RealmList的读/写生成器

我正在使用Kotlin编程一个项目: Kotlin版本:1.1.3-2 Parcerler版本1.1.9 Realm版本3.2.0 我使用Parceler作为FragmentArgs与RealmObjects并得到以下崩溃。 Parceler:无法找到类型为io.realm.RealmList的读/写生成器 我的班级工作是这样的: @Parcel(value = Parcel.Serialization.BEAN, analyze = arrayOf(Job::class)) open class Job( @PrimaryKey open var tweetId: Long? = -1L, open var text: String = "", open var title: String = "", open var longitude: Double? = null, open var latitude: Double? = null, open var link: String = "", @ParcelPropertyConverter(RealmStringListParcelConverter::class) open […]

添加Realm类后无法创建Android项目

我已经用Kotlin创建了SelfGeneration Realm类,并且添加了该项目后不再构建。 我该如何解决? @RealmClass open class SelfGeneration() : BaseRealmObject { @PrimaryKey override var id: Int? = null open var type: ItemType? = null open var model: String? = null open var watt: Int? = null companion object { fun getById(id: Int): SelfGeneration { val realm = Realm.getDefaultInstance() val selfGeneration = realm.where(SelfGeneration::class.java) .equalTo(BaseRealmObject.Field.ID, id) .findFirst() return […]

Android Kotlin Realm正确的方法来查询+更新异步

我最近遇到了一个问题,在内存中有一个RealResult对象列表,并在视图中显示它。 用户点击后,当前显示的项目应该被标记为已删除(property isDeleted ) 所以我只是从懒惰RealmResults列表中获取该对象,打开一个事务并将其标记为已删除。 当RealmResults被自动更新时,我有一个绑定到notifityDataSetChanged的更改监听notifityDataSetChanged 。 一切工作正常,除了这个警告: Mixing asynchronous queries with local writes should be avoided. Realm will convert any async queries to synchronous in order to remain consistent. Use asynchronous writes instead 这是有问题的,因为我的名单是巨大的,我不希望查询变成sync 。 我这样解决了,我不知道这是对的。 而不是给项目对象的更新功能,我给对象的ID,然后这样做: Realm.getDefaultInstance().use { realm -> realm.executeTransactionAsync { // find the item realm.where(ItemRealm::class.java) .equalTo(ItemRealm.ID, itemId).findFirstAsync() .addChangeListener(object : RealmChangeListener<ItemRealm> { […]

Kotlin – 如何从一个接口“延迟”一个var overrided?

我有一个名为UserManager的接口 interface UserManager { var user:User /* … */ } 和一个名为UserManagerImpl的类来实现UserManager class UserManagerImpl : UserManager { override var user: User // = must provide an User object /* … */ } 这是我的问题: 如何允许另一个类在UserManager()中随时设置User ( 即,不要在属性声明旁边提供一个初始的User对象,并让另一个类创建并提供一个User实例)? 拿这个算 接口不能有lateinit属性 我希望User是一个非空值,所以没有可空属性( User? ) 我想要使​​用字段访问而不是declare,并在接口中使用setUser(User)和getUser()方法

境界不是kotlin架构的一部分

致命的例外:主要 java.lang.IllegalArgumentException: student_relam_pojo is not part of the schema for this Realm at io.realm.internal.modules.CompositeMediator.getMediator(CompositeMediator.java:118) at io.realm.internal.modules.CompositeMediator.getTableName(CompositeMediator.java:71) at io.realm.Realm.getTable(Realm.java:327) at io.realm.Realm.createObject(Realm.java:1085)at example.com.kotlinexamplebydimple.RealmActivity$onCreate$1.onClick(RealmActivity.kt:24) val realm = Realm.getInstance(this @ RealmActivity) btn_click.setOnClickListener { realm.beginTransaction() var pojo : student_relam_pojo ? pojo = realm.createObject(student_relam_pojo::class.java) pojo.nm = edt_name.text.toString() pojo.pass = edt_pass.text.toString() realm.commitTransaction() } Student_realm_pojo public open class student_relam_pojo() : RealmObject() { public […]