我正在使用此代碼按字母順序對列表視圖進行排序,但它並未對其進行排序a-z將它排序z-a問題在哪裏?在Android中排序列表視圖
adapter.sort(new Comparator<String>() {
@Override
public int compare(String arg1, String arg0) {
return -arg1.compareTo(arg0);
}
});
我正在使用此代碼按字母順序對列表視圖進行排序,但它並未對其進行排序a-z將它排序z-a問題在哪裏?在Android中排序列表視圖
adapter.sort(new Comparator<String>() {
@Override
public int compare(String arg1, String arg0) {
return -arg1.compareTo(arg0);
}
});
也許性格 - return
和arg1.compareTo(arg0);
之間'?
刪除return
和arg1.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);
}
});
使用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
謝謝!有效! – Mahfa
不客氣! 不要忘記接受答案;) –