如何在RealmResults上执行交换功能

时间:2016-12-31 10:14:39

标签: android realm realm-list

@Override
public boolean onItemMove(int fromPosition, int toPosition) {

    RealmList<Note> results = new RealmList<>();
    results.addAll(mNotes.subList(0, mNotes.size()));

    if (fromPosition < toPosition) {
        for (int i = fromPosition; i < toPosition; i++) {
            Collections.swap(results, i, i + 1);
        }
    } else {
        for (int i = fromPosition; i > toPosition; i--) {
            Collections.swap(results, i, i - 1);
        }
    }

    mNotes = results.where().findAll();
    notifyItemMoved(fromPosition, toPosition);
    return true;
}

我想执行交换功能来重新排列适配器中的项目顺序。基本上我正在处理项目列表和拖放我要重新排列顺序。我做的是我复制的值从RealmResults mNotes到RealmList结果并完成swap.How如何将它放回Realm数据库?

mNotes = results.where()。findAll(); 由于RealmList不处于托管模式,因此无法使用这行代码。

1 个答案:

答案 0 :(得分:0)

我相信您需要使用

复制未管理的馆藏

copyToRealmOrUpdate方法:

cursor = collection.find({
            'name': {"$exists": 1},
            'value.a': {"$exists":0}
        });