使用自定义Fild对象对列表<modal>进行排序

时间:2016-04-13 12:35:01

标签: android json listview arraylist

我编写了一个解析json并在listView中显示它的程序 现在我想对它进行排序,但不知道如何失败。
在程序中我有一个List<PoolOfflineModal> alist = new ArrayList<>(); 所以模态是这样的;

public class PoolOfflineModal {
    private int id;
    private String name;
    private int price;
    private int priceWithoutDiscount;
    private String tel;
    private int discountPercent;
    private String address;
    private String photo;
}

,数据简单就在这里http://hayat.cloudsite.ir/pools/pools.json

所以我想按价格升级List,所以更新ListView,我不知道......
另一个想法?!还是解决方案?!

是否存在另一种方法来从没有排序列表的列中对ListView进行排序?!?

2 个答案:

答案 0 :(得分:0)

列出这样的对象:

List<PoolOfflineModal> alist = new ArrayList<>();

比较者类像这样:

public class MyComparator implements Comparator<PoolOfflineModal> {
    @Override
    public int compare(PoolOfflineModal o1, PoolOfflineModal o2) {
        return o1.id.compareTo(o2.id);
    }
}

使用像这样:

Collections.sort(alist, new MyComparator());

希望它对你有所帮助。

答案 1 :(得分:0)

这是我的最后一位比较者

    public class MyComparator implements Comparator<PoolOfflineModal> {
    @Override
    public int compare(PoolOfflineModal lo, PoolOfflineModal ro) {
        int result = 0;
        if (way == "name") {
            result = lo.getName().compareTo(ro.getName());
        } else if (way == "price") {
            result = lo.getPrice().compareTo(ro.getPrice());
        } else if (way == "percent") {
            result = lo.getDiscountPercent().compareTo(ro.getDiscountPercent());
        }
        return result;
    }
}