2013-10-31 136 views
2

我正在使用此代碼按字母順序對列表視圖進行排序,但它並未對其進行排序a-z將它排序z-a問題在哪裏?在Android中排序列表視圖

adapter.sort(new Comparator<String>() { 
    @Override 
    public int compare(String arg1, String arg0) { 
     return -arg1.compareTo(arg0); 
    } 
}); 

回答

1

也許性格 - returnarg1.compareTo(arg0);之間'?

+0

謝謝!有效! – Mahfa

+0

不客氣! 不要忘記接受答案;) –

4

刪除returnarg1.compareTo(arg0);之間的'-'。這將爲你做的伎倆..

以下將按z-a(降序)排序。

adapter.sort(new Comparator<String>() { 
    @Override 
    public int compare(String arg1, String arg0) { 
     return arg0.compareTo(arg1); 
    } 
}); 

因爲,A-Z(升序):

adapter.sort(new Comparator<String>() { 
     @Override 
     public int compare(String arg1, String arg0) { 
      return arg1.compareTo(arg0); 
     } 
    }); 
2

使用Collections.sort(yourArrayList),然後重新加載yourArrayList插入適配器。

這裏是一些代碼支持我的回答

YourAdapter.java

public class YourAdapter extends BaseAdapter 
{ 
    protected ArrayList<String> data; 
    public void addSomeData() 
    { 
     data.add("oranj"); 
     data.add("apple"); 
     data.add("pineapple"); 
    } 
    public YourAdapter sortData() 
    { 
     Collections.sort(data); 
     return this; 
    } 
    public int getCount() 
    { 
     return data.size(); 
    } 

    public String getItem(int position) 
    { 
     return data.get(position); 
    } 

    public long getItemId(int position) 
    { 
     return position; 
    } 
} 

,並在您的活動

list.setAdapter(new YourAdapter(this)); // not sorted list 
list.setAdapter(new YourAdapter(this).sortData()); // sorted list 
+0

你可否解釋一下你的答案?請! – Mahfa

+0

我已經更新了答案 –

+0

不客氣。 –