@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;
}
Я хочу, чтобы выполнить функцию подкачки, чтобы изменить порядок элементов в adapter.Basically я имею дело со списком по пунктам и перетаскивания Я хочу изменить order.What я сделал, я скопировал значения из RealmResults mNotes в результаты RealmList и сделал swap. Как вернуть его в базу данных Realm?Как выполнить функцию подкачки на RealmResults
mNotes = results.where(). FindAll(); Эта строка кода невозможна, так как RealmList не находится в управляемом режиме.
Я уверен, надеюсь, что у вас есть поле, которое соответствует положению пункта. – EpicPandaForce
Элементы @sreejith 'RealmResults' не могут быть заменены напрямую. Как предлагает @EpicPandaForce, я думаю, вам нужно дополнительное поле (назовем его 'position'). Вы можете сортировать «RealmResults» с помощью этого поля, а затем обмениваться на объект, заменяя значения поля 'position'. – geisshirt
Спасибо за комментарии. Основываясь на вашем предположении, я попробовал сортировать метод, подобный этому. MNotes.sort (new Comparator() { @Override public int compare (Примечание o1, Примечание o2) { return results.indexOf (o1. getId()) - results.indexOf (o2.getId()); } }); Но это только для api 24. Использование этого для android.And Collection.sort метод не может быть сделан для realmResults! –