3
@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 结果并完成交换。如何将其放回 Realm 数据库?

mNotes = results.where().findAll(); 这行代码是不可能的,因为 RealmList 不是托管模式。

4

1 回答 1

0

我相信您需要使用

copyToRealmOrUpdate方法:

// Initialize Realm
Realm.init(context);
// Get a Realm instance for this thread
Realm realm = Realm.getDefaultInstance();
realm.copyToRealmOrUpdate(results);
于 2016-12-31T11:37:12.930 回答