をスローし、私がjava.lang.UnsupportedOperationExceptionがをスローソートカスタムを持っていますそれは、このようなリストコレクションに座っているので、私は、レルムのデータベースからそれをretreivedた後:レルムはカスタムの並べ替えのAndroid用のレルムを使用するにUnsupportedOperationException
public class DistanceComparator implements Comparator<Restaurant> {
private Location currentLocation;
public DistanceComparator(Location location) {
currentLocation = location;
}
public int compare(RealmObject c1, RealmObject c2) {
if ((LocationUtil.calculateSomeValue(c1.getLocation()))
== (LocationUtil.calculateSomeValue(c2.getLocation()))) {
return 0;
}
else if ((LocationUtil.calculateSomeValue(c1.getLocation()))
< (LocationUtil.calculateSomeValue(c2.getLocation()))) {
return -1;
}
else {
return 1;
}
}
}
:
Collections.sort(stores, new DistanceComparator(currentLocation));
DistanceComparatorは次のようになります私がデータの一時的な性質にレルム内ソートを実行することはできません
java.lang.UnsupportedOperationException: Replacing and element is not supported.
at io.realm.RealmResults$RealmResultsListIterator.set(RealmResults.java:868)
at io.realm.RealmResults$RealmResultsListIterator.set(RealmResults.java:799)
at java.util.Collections.sort(Collections.java:247)
:私は、ソートを実行すると0
はしかし、私は取得しています。
Realmデータを持つコレクションに対して基本ソートを実行できませんか、この種の並べ替えを実行するためにRealmObjectであるクラスに何らかのアノテーションを追加する必要がありますか?
私はこの質問を見ていたし、これは動作しませんならば、それは私のフォールバックです:How do you sort a RealmList or RealmResult by distance?
さてあなたは、ソート、RealmObject( 'findAllSorted( "距離" でのフィールドのソート条件としてソートを設定することができますいずれかであります.ASCENDING) ')するか、すべての要素をコピーアウトする必要があります。 – EpicPandaForce