下面是activity:

  1. public class MainActivity extends Activity {
  2.  
  3. private ListView mListView = null;
  4. private List<TestDate> mList = null;
  5.  
  6. @Override
  7. public void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. setContentView(R.layout.activity_main);
  10. mListView = (ListView) this.findViewById(R.id.main_listView);
  11. mList = new ArrayList<TestDate>();
  12. initData();
  13. Collections.sort(mList, new Comparator<TestDate>() {
  14. /**
  15. *
  16. * @param lhs
  17. * @param rhs
  18. * @return an integer < 0 if lhs is less than rhs, 0 if they are
  19. * equal, and > 0 if lhs is greater than rhs,比较数据大小时,这里比的是时间
  20. */
  21. @Override
  22. public int compare(TestDate lhs, TestDate rhs) {
  23. Date date1 = DateUtil.stringToDate(lhs.getDate());
  24. Date date2 = DateUtil.stringToDate(rhs.getDate());
  25. // 对日期字段进行升序,如果欲降序可采用after方法
  26. if (date1.before(date2)) {
  27. return ;
  28. }
  29. return -;
  30. }
  31. });
  32. mListView.setAdapter(new MyAdapter(this, mList));
  33. }
  34.  
  35. private void initData() {
  36. mList.add(new TestDate("2012-12-12 12:30", "zhangsan"));
  37. mList.add(new TestDate("2012-12-12 10:20", "lisi"));
  38. mList.add(new TestDate("2012-12-11 10:21", "lisi"));
  39. mList.add(new TestDate("2012-12-11 10:20", "lisi"));
  40. mList.add(new TestDate("2012-12-13 01:03", "wangwu"));
  41. mList.add(new TestDate("2012-12-10 02:04", "zhaoliu"));
  42. mList.add(new TestDate("2012-12-15 23:00", "tianqi"));
  43. mList.add(new TestDate("2012-11-12 22:30", "wangwu"));
  44. mList.add(new TestDate("2012-12-17 08:24", "shimei"));
  45. mList.add(new TestDate("2012-11-10 11:10", "shisanmei"));
  46. mList.add(new TestDate("2012-12-18 16:50", "wangan"));
  47. mList.add(new TestDate("2012-12-19 18:00", "wangjiu"));
  48. mList.add(new TestDate("2012-12-20 19:30", "wusi"));
  49. mList.add(new TestDate("2012-12-20 19:30", "wusi"));
  50. }
  51. }

下面是工具类:

  1. public class DateUtil {
  2.  
  3. public static Date stringToDate(String dateString) {
  4. ParsePosition position = new ParsePosition();
  5. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
  6. Date dateValue = simpleDateFormat.parse(dateString, position);
  7. return dateValue;
  8. }
  9.  
  10. }

下面是ListView用的Adapter:

  1. public class MyAdapter extends BaseAdapter {
  2.  
  3. private Context mContext;
  4. private List<TestDate> mList;
  5.  
  6. public MyAdapter(Context context, List<TestDate> list) {
  7. this.mContext = context;
  8. this.mList = list;
  9. }
  10.  
  11. @Override
  12. public int getCount() {
  13. return mList != null ? mList.size() : ;
  14. }
  15.  
  16. @Override
  17. public Object getItem(int position) {
  18. return mList.get(position);
  19. }
  20.  
  21. @Override
  22. public long getItemId(int position) {
  23. return position;
  24. }
  25.  
  26. @Override
  27. public View getView(int position, View convertView, ViewGroup parent) {
  28. ViewHolder holder = null;
  29. if (convertView == null) {
  30. convertView = (LinearLayout) LayoutInflater.from(mContext).inflate(
  31. R.layout.main_item, null);
  32. holder = new ViewHolder();
  33. holder.textView1 = (TextView) convertView
  34. .findViewById(R.id.item_textView1);
  35. holder.textVeiw2 = (TextView) convertView
  36. .findViewById(R.id.item_textView2);
  37. convertView.setTag(holder);
  38. } else {
  39. holder = (ViewHolder) convertView.getTag();
  40. }
  41.  
  42. holder.textView1.setText(mList.get(position).getDate());
  43. holder.textVeiw2.setText(mList.get(position).getName());
  44.  
  45. return convertView;
  46. }
  47.  
  48. private class ViewHolder {
  49. private TextView textView1;
  50. private TextView textVeiw2;
  51. }
  52.  
  53. }

下面是xml文件:

  1. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2. xmlns:tools="http://schemas.android.com/tools"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent" >
  5.  
  6. <ListView
  7. android:id="@+id/main_listView"
  8. android:layout_width="match_parent"
  9. android:layout_height="match_parent"
  10. android:layout_centerHorizontal="true"
  11. android:layout_centerVertical="true"
  12. tools:context=".MainActivity" />
  13.  
  14. </RelativeLayout>
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="horizontal" >
  6.  
  7. <TextView
  8. android:id="@+id/item_textView1"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:layout_gravity="center_vertical"
  12. android:layout_margin="10dp" />
  13.  
  14. <TextView
  15. android:id="@+id/item_textView2"
  16. android:layout_width="wrap_content"
  17. android:layout_height="wrap_content"
  18. android:layout_gravity="center_vertical" />
  19.  
  20. </LinearLayout>

下面是一个JavaBean的类:

  1. public class TestDate {
  2.  
  3. private String date;
  4. private String name;
  5.  
  6. public String getDate() {
  7. return date;
  8. }
  9.  
  10. public String getName() {
  11. return name;
  12. }
  13.  
  14. public TestDate(String date, String name) {
  15. this.date = date;
  16. this.name = name;
  17. }
  18.  
  19. }

Android ListView中带有时间数据的排序的更多相关文章

  1. sql 中实现打乱数据的排序

    sql 中实现打乱数据的排序    order by NEWID()就实现了数据的打乱 

  2. android listview中item通过viewpager实现《IT蓝豹》

    android listview中item通过viewpager实现 android listview中item通过viewpager实现,每一个item都支持viewpager实现图片切换功能.本项 ...

  3. Android ListView 中的checkbox

    Q:ListView + CheckBox 当上下滚动的时候有事会自动选中或取消 A:这个与ListView的缓存机制有关.当你屏幕滚动后,ListView中的item选项视图先检查缓存中是否有视图, ...

  4. Android,LIstView中的OnItemClick点击无效的解决办法

    在List_Item布局文件中的根节点加上如下背景标黄的这一行 <?xml version="1.0" encoding="utf-8"?> < ...

  5. [Android] ListView中如何让onClick和onItemClick事件共存

    ListView中如何使用Button,让onClick和onItemClick事件共存 假如ListView的一条记录包含一个TextView文本框,一个Button按钮,怎样能让点击按钮有事件响应 ...

  6. android ListView中button点击事件盖掉onItemClick解决办法

    ListView 1.在android应用当中,很多时候都要用到listView,但如果ListView当中添加Button后,ListView 自己的 public void onItemClick ...

  7. Android ListView异步加载数据

    1.主Activity public class MainActivity extends Activity { private ListView listView; private ArrayLis ...

  8. 关于ListView中包含EditText数据复用引起异常的解决方案

    概述 前几天测试提了一个bug,在ListView中添加留言信息,导致错乱的问题.实际上就是ListView需要添加一个EditText,复用导致错乱的问题,这个问题以前也遇到过.诸如,ListVie ...

  9. Android ListView中Item点击事件失效解决方案

    欢迎关注公众号,每天推送Android技术文章,二维码如下:(可扫描) 在平常的开发过程中,我们的ListView可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布 ...

随机推荐

  1. HighCharts去掉水印链接

    找到highcharts-all.js文件,将credits:{enabled:!0}改为credits:{enabled:0}即可

  2. 【转】win32,win64编程永恒;语言编程需要注意的64位和32机器的区别

    原文网址:http://www.cnblogs.com/kex1n/archive/2010/10/06/1844737.html 一.数据类型特别是int相关的类型在不同位数机器的平台下长度不同.C ...

  3. RBL, UBL, Uboot的关系

    RBL, UBL, Uboot的关系 1)RBL=ROM Bootloader,UBL=user Bootloader. 2)RBL为TI固化在芯片ROM中的bootloader,OMAP上电启动过后 ...

  4. [Oracle] 参数修改小结

    v$parameter Oracle参数的修改比较复杂,有些参数是可以在session级别修改,有些则必须在system级别修改,有些参数修改后马上生效(不需要重启),有些参数则必须重启才能生效,那么 ...

  5. Install Cocos2d-x v3.3 on Ubuntu 14.04 & Ubuntu 14.10(转)

    Install Cocos2d-x v3.3 on Ubuntu 14.04 & Ubuntu 14.10 1 get the source code sudo apt-get install ...

  6. springMVC+mybatis用户登录实例

    1.整体结构 2.准备工作 数据库: --Mysql 5.6 创建数据库 wolf 1 CREATE DATABASE wolf; 创建用户表 user 1 2 3 4 5 6 create tabl ...

  7. java删除文件夹下所有文件

    package org.sw; import java.io.File; /** * * @author mengzw * @since 3.0 2014-2-26 */ public class D ...

  8. 大到可以小说的Y组合子(二)

    问:上一回,你在最后曾提到"抽象性不足",这话怎么说? 答:试想,如果现在需要实现一个其它的递归(比如:Fibonacci),就必须把之前的模式从头套一遍,然后通过fib_make ...

  9. 解决Xcode6.4安装插件后插件不能使用的问题

    下面是上网查的方法,综合了一下,亲测 原因: 苹果要求加入UUID证书从而保证插件的稳定性. 解决方法: 一.查看Xcode的UUID 在终端执行 defaults read /Application ...

  10. htm跨域锚点定位

    a.html <div class="title" id="aaaa">保险服务</div> b.html <div class= ...