我正在使用此代码按字母顺序对列表视图进行排序,但它并未对其进行排序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
不客气! 不要忘记接受答案;) –