我想按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;
}
});