2013-11-14 70 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

順便說一句,你必須返回一個值<0,因爲根據文檔比較應該返回「如果lhs小於rhs,則返回一個整數<0,如果它們相等則返回0,如果lhs大於rhs則返回0> –

回答

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

非常感謝,現在工作:) ..我正在返回錯誤的值。我真笨; P。謝謝。 – gIrL

+0

@ user2978175我很高興您的問題已解決,但僅僅感謝不是Stackoverflow上的方法。如果它對你有幫助,你必須接受其中一個答案。 –

+0

ahhh我很抱歉,但如何接受答案。 – gIrL