2017-01-18 9 views
0

Мне нужно сделать это, чтобы заказать результат моего царства в порядке минимального расстояния. Так что я делаю это:как отсортировать этот предмет RealmResult?

  public void onNext(final Location location) 
     { 
      latitude = location.getLatitude(); 
      longitude = location.getLongitude(); 

      nearbs = realm.where(Airport.class).greaterThanOrEqualTo("latitudeDeg",(latitude - 0.5)).lessThanOrEqualTo("latitudeDeg",(latitude + 0.5)) 
        .greaterThanOrEqualTo("longitudeDeg",longitude - 0.5).lessThanOrEqualTo("longitudeDeg",longitude + 0.5).findAll(); 


      realm.executeTransaction(new Realm.Transaction() { 
       @Override 
       public void execute(Realm realm) 
       { 
        for(Airport airport : nearbs) 
        { 
         Location location1 = new Location(""); 
         location1.setLatitude(airport.getLatitudeDeg()); 
         location1.setLongitude(airport.getLongitudeDeg()); 

         float distance = location1.distanceTo(location); 
         distance = distance/1852; //Calculate the distance 

         airport.setDistance(distance); 
         Log.d("distance",String.valueOf(distance)); 

         realm.insertOrUpdate(airport); 
        } 

        nearbs.sort("distance", Sort.ASCENDING); 

        adapter.updateNearbs(nearbs); //here there is notifyDataSetChanged() 

       } 
      }); 

     } 

проблема заключается в том, что Realm не сортирует этот список и поэтому адаптер у меня нет аэропорта по заказу расстояния.

Есть ли лучший способ сделать это? Благодаря

+1

'nearbs = nearbs.sort («расстояние», Sort.ASCENDING)' в новых обновлениях области, вы должны назначить отсортированный результат в список –

ответ

1
nearbs = nearbs.sort("distance", Sort.ASCENDING); 

в новых обновлениях области, вы должны назначить отсортированный результат перечислить

+0

спасибо вам за помощь! – ste9206