我正在使用此代码按字母顺序对列表视图进行排序,但它没有对它进行排序,它对它进行排序 za 问题在哪里?
adapter.sort(new Comparator<String>() {
@Override
public int compare(String arg1, String arg0) {
return -arg1.compareTo(arg0);
}
});
去掉和'-'
之间。这将为您解决问题..return
arg1.compareTo(arg0);
以下将按 za(降序)顺序排序。
adapter.sort(new Comparator<String>() {
@Override
public int compare(String arg1, String arg0) {
return arg0.compareTo(arg1);
}
});
对于,az(升序):
adapter.sort(new Comparator<String>() {
@Override
public int compare(String arg1, String arg0) {
return arg1.compareTo(arg0);
}
});
使用Collections.sort(yourArrayList)
然后将 yourArrayList 重新加载到适配器中。
这是一些代码支持我的回答
你的适配器.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
return
也许和之间的字符'-' arg1.compareTo(arg0);
?