这里涉及到对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);

Android开发之对ListView的数据进行排序的更多相关文章

  1. 【转】Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法

    Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法 [原文链接] 这篇文章完美的解决了我几个月没结论的bug... 感谢热爱分享的技术达人~ 我是怎么走进这个大坑的 ...

  2. 【Android UI】Android开发之View的几种布局方式及实践

    引言 通过前面两篇: Android 开发之旅:又见Hello World! Android 开发之旅:深入分析布局文件&又是“Hello World!” 我们对Android应用程序运行原理 ...

  3. Android开发之Java集合类性能分析

    对于Android开发者来说深入了解Java的集合类很有必要主要是从Collection和Map接口衍生出来的,目前主要提供了List.Set和 Map这三大类的集合,今天Android吧(ard8. ...

  4. Android开发之InstanceState详解

    Android开发之InstanceState详解   本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...

  5. Android开发之旅: Intents和Intent Filters(理论部分)

    引言 大部分移动设备平台上的应用程序都运行在他们自己的沙盒中.他们彼此之间互相隔离,并且严格限制应用程序与硬件和原始组件之间的交互. 我们知道交流是多么的重要,作为一个孤岛没有交流的东西,一定毫无意义 ...

  6. Android开发之Java必备基础

    Android开发之Java必备基础 Java类型系统 Java语言基础数据类型有两种:对象和基本类型(Primitives).Java通过强制使用静态类型来确保类型安全,要求每个变量在使用之前必须先 ...

  7. [置顶] Android开发之MediaPlayerService服务详解(一)

    前面一节我们分析了Binder通信相关的两个重要类:ProcessState 和 IPCThreadState.ProcessState负责打开Binder 驱动,每个进程只有一个.而 IPCThre ...

  8. [置顶] Android开发之serviceManager分析

    Android 开发之serviceManager分析 在Android系统中用到最多的通信机制就是Binder,Binder主要由Client.Server.ServiceManager和Binde ...

  9. Android开发之InstanceState详解(转)---利用其保存Activity状态

    Android开发之InstanceState详解   本文介绍Android中关于Activity的两个神秘方法:onSaveInstanceState() 和 onRestoreInstanceS ...

随机推荐

  1. JAVAWEB 一一 Spirng(AOP面向切面)

    applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <!-- < ...

  2. (Unity4.7)assetbundle 坑爹总结

    使用版本Unity4.7 一.关于依赖打包 1.当一个被打包的资源A引用了其他的资源B,并且没有被打成一个包时,要选用[BuildAssetBundleOptions.CollectDependenc ...

  3. 学JS的心路历程 -函式(三)this

    this是什么,取决于被呼叫的呼叫地点. 昨天有提到说,呼叫函式时候会传递隐含参数:arguments和this并讲解了arguments,今天我们就来探讨this吧! 什么是this 我们都会呼叫函 ...

  4. 十分钟搞定pandas

    转至:http://www.cnblogs.com/chaosimple/p/4153083.html 本文是对pandas官方网站上<10 Minutes to pandas>的一个简单 ...

  5. 2017秋季面向对象程序设计(Java)教材、教学纲要、考核要求

    教材简况 凯 S.霍斯特曼 (Cay S. Horstmann)(作者), 周立新(译者), Java核心技术(卷1):基础知识(原书第10版) , 2016年9月1出版 本书包括两卷,选做教材的是卷 ...

  6. AJAX简单实例

    越用AJAX越觉得它的强大.好用. 平常我们提交表单,是直接通过action属性,直接向后台提交数据. 我们也可以用AJAX向后台提交数据.例如: 这是一个表单,两个字段:notice,scort,保 ...

  7. Error:No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android

    https://www.jianshu.com/p/fd3d49c7f1f8 通过Android Studio 的Sdk Manager安装NDK,安装完之后编译失败,报错信息如下: Error:No ...

  8. 1.1、CDH 搭建Hadoop在安装之前(配置网络名称)

    重要: CDH需要IPv4.不支持IPv6.提示:粘合时,请使用bond0 IP地址,因为它代表所有聚合链接. 按如下方式配置群集中的每个主机,以确保所有成员可以相互通信: 将主机名设置为唯一名称(不 ...

  9. javascript sourcemap

    [javascript sourcemap] 暂时只有Chrome浏览器支持这个功能.在Developer Tools的Setting设置中,确认选中"Enable JavaScript s ...

  10. 字符串相似度算法(编辑距离Levenshtein Distance)的应用场景

    应用场景 DNA分析: 将DNA的一级序列如β-球蛋白基因的第一个外显子(Exon)转化为分子“结构图”,然后由所得“结构图”提取图的不变量,如分子连接性指数.以图的不变量作为自变量,再由相似度计算公 ...