Android开发之对ListView的数据进行排序

这里涉及到对ListView的数据进行排序,以及ListView的数据如何清空处理。排序的方法相同,但是里面的数据集合有些区别:一种是利用pojo类取得数据;另一种是利用map来取得数据。

第一种:利用pojo类完成排序

pojo类:HuoLiang.class

public class HuoLiang {
    private String dianmian;// 店面
    private String total_price;// 运费
    private String agent_cargo_charge;// 代收
    private String shuliang;// 运单
    private String quantity;// 件数

    public String getDianmian() {
        return dianmian;
    }

    public void setDianmian(String dianmian) {
        this.dianmian = dianmian;
    }

    public String getTotal_price() {
        return total_price;
    }

    public void setTotal_price(String total_price) {
        this.total_price = total_price;
    }

    public String getAgent_cargo_charge() {
        return agent_cargo_charge;
    }

    public void setAgent_cargo_charge(String agent_cargo_charge) {
        this.agent_cargo_charge = agent_cargo_charge;
    }

    public String getShuliang() {
        return shuliang;
    }

    public void setShuliang(String shuliang) {
        this.shuliang = shuliang;
    }

    public String getQuantity() {
        return quantity;
    }

    public void setQuantity(String quantity) {
        this.quantity = quantity;
    }

    @Override
    public String toString() {
        return "HuoLiang [dianmian=" + dianmian + ", total_price="
                + total_price + ", agent_cargo_charge=" + agent_cargo_charge
                + ", shuliang=" + shuliang + ", quantity=" + quantity + "]";
    }

 

    List<HuoLiang> internetlist= new ArrayList<HuoLiang>();//从服务器上加载的数据
    // 将集合中的值赋给另一个集合,前提条件是两个集合的类型一致
    List<HuoLiang> locallist = new ArrayList<HuoLiang>(internetlist);
    //listView的自定义的适配器,是本地数据集合locallist和ListView的桥梁
    HLCheckAdapter localadapter= new HLCheckAdapter(locallist, R.layout.check_item,HLCheckActivity.this);
    //服务器加载的数据集合internetlist与listView的桥梁
    HLCheckAdapter adapter= new HLCheckAdapter(internetlist, R.layout.check_item,HLCheckActivity.this);
    if (internetlist != null && internetlist.size() != 0) {
    //将本地数据集合清空,然后加载到适配器中,这样才能做到ListView的数据的清空,方便下面的排序
    locallist.clear();
    listView.setAdapter(localadapter);
    //升序     Collections.sort(internetlist,
new Comparator<HuoLiang>() { @Override public int compare(HuoLiang t1, HuoLiang t2) { // TODO Auto-generated method stub if (Float.parseFloat(t1.getTotal_price()) > Float .parseFloat(t2.getTotal_price())) { return 1; } if (Float.parseFloat(t1.getTotal_price()) < Float .parseFloat(t2.getTotal_price())) { return -1; } return 0; } }); // 将排序后的集合加载到listView中 listView.setAdapter(adapter); }

          //降序
          locallist.clear();
                listView.setAdapter(localadapter);
                Collections.sort(internetlist, new Comparator<HuoLiang>() {

                    @Override
                    public int compare(HuoLiang t1, HuoLiang t2) {
                        // TODO Auto-generated method stub
                        if (Float.parseFloat(t1.getTotal_price())<Float.parseFloat(t2.getTotal_price())) {
                            return 1;
                        }
                        if (Float.parseFloat(t1.getTotal_price())>Float.parseFloat(t2.getTotal_price())) {
                            return -1;
                        }
                        return 0;
                    }
                });
                // 将排序后的集合加载到listView中
                listView.setAdapter(adapter);

 第二种:利用Map进行排序

        // 清空listView列表
             localList.clear();
             listView.setAdapter(localadapter);

             // 排序
             Collections.sort(listitem,new Comparator<Map<String, Object>>() {
                     @Override
                  public int compare(Map<String, Object> o1, Map<String, Object> o2) {
                      if (Float.parseFloat(o1.get("agent_cargo_charge").toString()) > Float.parseFloat(o2.get("agent_cargo_charge").toString())) {
                               return 1;
                         } else if (Float.parseFloat(o1.get("agent_cargo_charge").toString()) < Float.parseFloat(o2.get("agent_cargo_charge").toString())) {
                               return -1;
                       }
                                return 0;
                   }
                 });
             // 将排序后的集合加载到listView中
             listView.setAdapter(hlCheckAdapter);

 

转载于:https://www.cnblogs.com/1925yiyi/p/7476899.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值