2016-12-31 12 views
2

私はアダプタ内のアイテムの順序を並べ替えるためにスワップ機能を実行したいと思います。基本的に私はアイテムのリストとドラッグアンドドロップで再配置したい注文しました。私がしたことは、RealmResultsのmNotesからRealmListの結果に値をコピーし、スワップを完了したことです。それをRealmデータベースに戻す方法は?RealmResultsでスワップ機能を実行するには

mNotes = results.where()。findAll(); RealmListが管理モードでないため、このコード行は使用できません。

+0

私はあなたがアイテムの位置に対応するフィールドを持っている願っています。 – EpicPandaForce

+0

@sreejith 'RealmResults'要素は直接スワップすることはできません。 @EpicPandaForceが示唆するように、私は余分なフィールドが必要だと思います( 'position'と呼ぶ)。そのフィールドを使って 'RealmResults'をソートし、' position'フィールドの値を入れ替えてオブジェクトにスワップします。 – geisshirt

+0

おかげで、両方の私は比較このmNotes.sort(新しいコンパレータ(){@Override 公共int型のようなソート方法を試して、あなたの提案にcomments.Based(のための01、注02){ リターンresults.indexOf(O1に注意してください。 getId()) - results.indexOf(o2.getId()); } });しかしこれはapi 24のためだけです。これを使ってandroid.AndとCollection.sortメソッドはrealmResultsでは実行できません! –

答えて

0

は、私はあなたが

copyToRealmOrUpdate方法を使用して、非管理コレクションをコピーする必要があると考えている:

// Initialize Realm 
Realm.init(context); 
// Get a Realm instance for this thread 
Realm realm = Realm.getDefaultInstance(); 
realm.copyToRealmOrUpdate(results); 
+0

私のために働いていない!私はRealmResultsを使用しています mNotes = realm.where(注.class).findAll(); RecyclerViewAdapterの場合RealmResultsにスワッピングを直接行うことはできないので、私はそれをRealmListに変換し、スワップを実行しています。スワップ後、私は自分のケースで、RealmResultsに戻す必要があります。 - –

関連する問題