使用android中的复选框列对列表进行排序

时间:2015-08-05 11:22:13

标签: android sorting listview comparator

我在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);

1 个答案:

答案 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()));
        }
});