Android ListView中带有时间数据的排序
下面是activity:
- public class MainActivity extends Activity {
- private ListView mListView = null;
- private List<TestDate> mList = null;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mListView = (ListView) this.findViewById(R.id.main_listView);
- mList = new ArrayList<TestDate>();
- initData();
- Collections.sort(mList, new Comparator<TestDate>() {
- /**
- *
- * @param lhs
- * @param rhs
- * @return an integer < 0 if lhs is less than rhs, 0 if they are
- * equal, and > 0 if lhs is greater than rhs,比较数据大小时,这里比的是时间
- */
- @Override
- public int compare(TestDate lhs, TestDate rhs) {
- Date date1 = DateUtil.stringToDate(lhs.getDate());
- Date date2 = DateUtil.stringToDate(rhs.getDate());
- // 对日期字段进行升序,如果欲降序可采用after方法
- if (date1.before(date2)) {
- return ;
- }
- return -;
- }
- });
- mListView.setAdapter(new MyAdapter(this, mList));
- }
- private void initData() {
- mList.add(new TestDate("2012-12-12 12:30", "zhangsan"));
- mList.add(new TestDate("2012-12-12 10:20", "lisi"));
- mList.add(new TestDate("2012-12-11 10:21", "lisi"));
- mList.add(new TestDate("2012-12-11 10:20", "lisi"));
- mList.add(new TestDate("2012-12-13 01:03", "wangwu"));
- mList.add(new TestDate("2012-12-10 02:04", "zhaoliu"));
- mList.add(new TestDate("2012-12-15 23:00", "tianqi"));
- mList.add(new TestDate("2012-11-12 22:30", "wangwu"));
- mList.add(new TestDate("2012-12-17 08:24", "shimei"));
- mList.add(new TestDate("2012-11-10 11:10", "shisanmei"));
- mList.add(new TestDate("2012-12-18 16:50", "wangan"));
- mList.add(new TestDate("2012-12-19 18:00", "wangjiu"));
- mList.add(new TestDate("2012-12-20 19:30", "wusi"));
- mList.add(new TestDate("2012-12-20 19:30", "wusi"));
- }
- }
下面是工具类:
- public class DateUtil {
- public static Date stringToDate(String dateString) {
- ParsePosition position = new ParsePosition();
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
- Date dateValue = simpleDateFormat.parse(dateString, position);
- return dateValue;
- }
- }
下面是ListView用的Adapter:
- public class MyAdapter extends BaseAdapter {
- private Context mContext;
- private List<TestDate> mList;
- public MyAdapter(Context context, List<TestDate> list) {
- this.mContext = context;
- this.mList = list;
- }
- @Override
- public int getCount() {
- return mList != null ? mList.size() : ;
- }
- @Override
- public Object getItem(int position) {
- return mList.get(position);
- }
- @Override
- public long getItemId(int position) {
- return position;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- ViewHolder holder = null;
- if (convertView == null) {
- convertView = (LinearLayout) LayoutInflater.from(mContext).inflate(
- R.layout.main_item, null);
- holder = new ViewHolder();
- holder.textView1 = (TextView) convertView
- .findViewById(R.id.item_textView1);
- holder.textVeiw2 = (TextView) convertView
- .findViewById(R.id.item_textView2);
- convertView.setTag(holder);
- } else {
- holder = (ViewHolder) convertView.getTag();
- }
- holder.textView1.setText(mList.get(position).getDate());
- holder.textVeiw2.setText(mList.get(position).getName());
- return convertView;
- }
- private class ViewHolder {
- private TextView textView1;
- private TextView textVeiw2;
- }
- }
下面是xml文件:
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent" >
- <ListView
- android:id="@+id/main_listView"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:layout_centerHorizontal="true"
- android:layout_centerVertical="true"
- tools:context=".MainActivity" />
- </RelativeLayout>
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="horizontal" >
- <TextView
- android:id="@+id/item_textView1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:layout_margin="10dp" />
- <TextView
- android:id="@+id/item_textView2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical" />
- </LinearLayout>
下面是一个JavaBean的类:
- public class TestDate {
- private String date;
- private String name;
- public String getDate() {
- return date;
- }
- public String getName() {
- return name;
- }
- public TestDate(String date, String name) {
- this.date = date;
- this.name = name;
- }
- }
Android ListView中带有时间数据的排序的更多相关文章
- sql 中实现打乱数据的排序
sql 中实现打乱数据的排序 order by NEWID()就实现了数据的打乱
- android listview中item通过viewpager实现《IT蓝豹》
android listview中item通过viewpager实现 android listview中item通过viewpager实现,每一个item都支持viewpager实现图片切换功能.本项 ...
- Android ListView 中的checkbox
Q:ListView + CheckBox 当上下滚动的时候有事会自动选中或取消 A:这个与ListView的缓存机制有关.当你屏幕滚动后,ListView中的item选项视图先检查缓存中是否有视图, ...
- Android,LIstView中的OnItemClick点击无效的解决办法
在List_Item布局文件中的根节点加上如下背景标黄的这一行 <?xml version="1.0" encoding="utf-8"?> < ...
- [Android] ListView中如何让onClick和onItemClick事件共存
ListView中如何使用Button,让onClick和onItemClick事件共存 假如ListView的一条记录包含一个TextView文本框,一个Button按钮,怎样能让点击按钮有事件响应 ...
- android ListView中button点击事件盖掉onItemClick解决办法
ListView 1.在android应用当中,很多时候都要用到listView,但如果ListView当中添加Button后,ListView 自己的 public void onItemClick ...
- Android ListView异步加载数据
1.主Activity public class MainActivity extends Activity { private ListView listView; private ArrayLis ...
- 关于ListView中包含EditText数据复用引起异常的解决方案
概述 前几天测试提了一个bug,在ListView中添加留言信息,导致错乱的问题.实际上就是ListView需要添加一个EditText,复用导致错乱的问题,这个问题以前也遇到过.诸如,ListVie ...
- Android ListView中Item点击事件失效解决方案
欢迎关注公众号,每天推送Android技术文章,二维码如下:(可扫描) 在平常的开发过程中,我们的ListView可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布 ...
随机推荐
- HighCharts去掉水印链接
找到highcharts-all.js文件,将credits:{enabled:!0}改为credits:{enabled:0}即可
- 【转】win32,win64编程永恒;语言编程需要注意的64位和32机器的区别
原文网址:http://www.cnblogs.com/kex1n/archive/2010/10/06/1844737.html 一.数据类型特别是int相关的类型在不同位数机器的平台下长度不同.C ...
- RBL, UBL, Uboot的关系
RBL, UBL, Uboot的关系 1)RBL=ROM Bootloader,UBL=user Bootloader. 2)RBL为TI固化在芯片ROM中的bootloader,OMAP上电启动过后 ...
- [Oracle] 参数修改小结
v$parameter Oracle参数的修改比较复杂,有些参数是可以在session级别修改,有些则必须在system级别修改,有些参数修改后马上生效(不需要重启),有些参数则必须重启才能生效,那么 ...
- 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 ...
- springMVC+mybatis用户登录实例
1.整体结构 2.准备工作 数据库: --Mysql 5.6 创建数据库 wolf 1 CREATE DATABASE wolf; 创建用户表 user 1 2 3 4 5 6 create tabl ...
- java删除文件夹下所有文件
package org.sw; import java.io.File; /** * * @author mengzw * @since 3.0 2014-2-26 */ public class D ...
- 大到可以小说的Y组合子(二)
问:上一回,你在最后曾提到"抽象性不足",这话怎么说? 答:试想,如果现在需要实现一个其它的递归(比如:Fibonacci),就必须把之前的模式从头套一遍,然后通过fib_make ...
- 解决Xcode6.4安装插件后插件不能使用的问题
下面是上网查的方法,综合了一下,亲测 原因: 苹果要求加入UUID证书从而保证插件的稳定性. 解决方法: 一.查看Xcode的UUID 在终端执行 defaults read /Application ...
- htm跨域锚点定位
a.html <div class="title" id="aaaa">保险服务</div> b.html <div class= ...