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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM