我想按int值对Listview进行排序。我看过类似的问题和解决方案,并做了类似的事情,但它不是对listView降序排序(顺便说一句什么也没有发生)。 arrayList中的对象是该对象具有名为“ rating”的字段。这是一个代码:

public class GifModel implements Comparable<GifModel>, Comparator<Integer>{
.......
.......

@Override
    public int compare(Integer lhs, Integer rhs) {
        // TODO Auto-generated method stub
        return lhs.intValue() > rhs.intValue() ? 1:0;
    }

}


并且在主要活动中。 “ ratingSort”是一个列表:

ratingSort = new ArrayList<GifModel>(list);

    Collections.sort(ratingSort, new Comparator<GifModel>() {
        @Override
        public int compare(GifModel lhs, GifModel rhs) {
        return lhs.compare(lhs.getRating(),rhs.getRating());
        }

        });

最佳答案

将排序比较器更改为此,您应该可以进行以下操作:

Collections.sort(ratingSort, new Comparator<GifModel>() {

    @Override
    public int compare(GifModel lhs, GifModel rhs) {
        if (lhs.getRating() < rhs.getRating())
            return -1;
        else if (lhs.getRating() > rhs.getRating())
            return 1;
        return 0;
    }

});

10-06 13:15