2013-10-31 89 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

不客气。 –