2013-11-14 4 views
0

Я использую Comparator, чтобы отсортировать мой ListView, но он не работает.Индивидуальный компаратор не работает

Мой код:

Collections.sort(orgi, new Comparator<Loc>() { 

       @Override 
       public int compare(Loc lhs, Loc rhs) { 

        if(lhs.getDist() < rhs.getDist()) 
         return 1; 
         else 
         return 0; 
       } 
      }); 

Может кто-нибудь предложить решение?

+1

Что такое возвращение типа getDist()? И что не работает –

+0

Пожалуйста, разместите код класса 'Loc', и вы не можете сортировать' ListView', я думаю, вы имели в виду 'ArrayList' или' List'. –

+0

BTW вы должны вернуть значение <0, так как согласно docs compare должно возвращать «целое число <0, если lhs меньше, чем rhs, 0, если они равны, и> 0, если lhs больше, чем rhs» –

ответ

3

Попробуйте это:

Collections.sort(orgi, new Comparator<Loc>() { 

      @Override 
      public int compare(Loc lhs, Loc rhs) { 
       if(lhs.getDist() < rhs.getDist()){ 
        return -1; 
       } else if(lhs.getDist() > rhs.getDist()){ 
        return 1; 
       } else { 
        return 0; 
       } 
      } 
     }); 
+0

Спасибо большое, его работа сейчас :) .. Я возвращал неправильные значения. я такой тупой; Благодарю. – gIrL

+0

@ user2978175 Я рад, что ваша проблема была решена, но просто спасибо, что это не путь к Stackoverflow. Вы должны принять один из ответов, если это вам поможет. –

+0

ahhh Извините, но как принять ответы. – gIrL

Смежные вопросы