我在android中有一个listview,包含行中的四列。它可以按两列(id,group)排序,另外两列是颜色状态值和复选框。目前使用比较器为id,group对行进行排序,但是当我调用notify时,只对这些值进行排序,颜色和复选框不是。有没有办法根据行对列表进行排序?
添加了id比较器的代码:
public static class IDComparator implements Comparator<MyObject> {
@Override
public int compare(MyObject lhs, MyObject rhs) {
if (lhs.getID() == null) {
if (rhs.getID() == null) {
//equal
return 0;
} else {
//lhs is <
return -1;
}
}
if (rhs.getID() == null) {
//lhs is >
return 1;
}
//neither null
if (lhs.getID() < rhs.getID()) {
return -1;
} else if (lhs.getID() > rhs.getID()) {
return 1;
} else {
return 0;
}
}
}
从这里调用此方法:
Collections.sort(myList, IDComparator);
答案 0 :(得分:1)
我在项目中使用Collection.sort进行排序:
Collections.sort(headerList, new Comparator<HeaderVO>() {
@Override
public int compare(HeaderVO e1, HeaderVO e2) {
return Double.valueOf(e2.getPNo()).compareTo(Double.valueOf(e1.getPNo()));
}
});