从 Realm 的本地数据库中获取已排序的 ArrayList

问题描述

我从 api 获取对象列表并使用 Realm 将该列表存储在本地数据库中。我能够存储和获取数据。但是当我从领域数据库获取数据时,列表中对象的顺序与来自 api 的列表不同。我正在分享代码片段

fun insertStatuses(statuses: List<Eis>) {
    realm.executeTransaction { transaction ->
        statuses.forEach { eis->
            transaction.insertOrUpdate(eis)
        }
    }
}

fun fetchAllStatuses(): RealmResults<Eis>? {
    return realm.where<Status>().findAll()
}

mViewModel?.fetchAllStatuses()?.let { results ->
     status.clear()
     status.addAll(realm.copyFromRealm(results))
     statusAdapter?.notifyDataSetChanged()
}

编辑

我也尝试在模型类中添加一个字段,该字段将保持 api 索引仍然无效

fun insertStatuses(eises: List<Eis>) {
    realm.executeTransaction { transaction ->
        eises.forEachIndexed { index,eis ->
            Log.d("eis_index_value",index.toString())
            Log.d("eis_index_value",eis.name)
            val mEis = Eis()
            mEis.apply {
                eisApiPosition = index + 1
                Log.d("eis_index_position",eisApiPosition.toString())
                _id = eis._id
                name = eis.name
                transaction.insertOrUpdate(this)
            }
        }
    }
}

Log 正在打印正确的值,但是当我获取这些对象时,每个对象中的 index 值都被弄乱了。 谁能帮我解决这个问题

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)