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可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布 ...
随机推荐
- JSP页面中文参数传递get和post方法分析
原文 http://developer.51cto.com/art/200907/133499.htm 在项目中,我们经常遇到需要在JSP页面切换中传递中文字符.这主要有两种方式. ◆URL方式 例如 ...
- c#实现文件拖放
1. 选择form窗口,在事件分别双击双击DragDrop和DragEnter private void Form1_DragDrop(object sender, DragEventArgs e) ...
- 【czy系列赛】czy的后宫4 && bzoj1925 [Sdoi2010]地精部落
[问题描述] czy有很多妹子,妹子虽然数量很多,但是质量不容乐观,她们的美丽值全部为负数(喜闻乐见). czy每天都要带N个妹子到机房,她们都有一个独一无二的美丽值,美丽值为-1到-N之间的整数.他 ...
- Spring HTTP invoker 入门
一.简介 Spring开发团队意识到RMI服务和基于HTTP的服务(如,Hessian)之间的空白.一方面,RMI使用JAVA标准的对象序列化机制,很难穿透防火墙.另一方面,Hessian/Burla ...
- MySql 中的常见问题解决方法
一.关键字做字段 ,mssql的做法是[关键字],mysql的做法是 `关键字` ;ps:(` 是 tab键上面的一个按键) 二.mssql数据导入到mysql: 1.mssql导出insert语句( ...
- java与.net比较学习系列(1) 开发环境和常用调试技巧
最近因为公司项目要由.net平台转到java平台的原因,之前一直用.net的我不得不开始学习java了,刚开始听到说要转java的时候很抗拒,因为我想专注在.net平台上,不过这样也并不完全是坏事,通 ...
- boost库在工作(39)网络UDP异步服务端之九
前面创建的UDP服务器和客户端,都是同步的方式,也就是说当接收数据时,不能参与别的事情执行的.如果在一个只有界面线程的程序里,又不想创建多线程,导致复杂程度的增加,在这种情况之下,我们还有一个方案可以 ...
- Apache-rhel5.8环境下编译安装
Apache安装过程 Step 1:安装包gcc或gcc-c++# yum install gcc#yum install gcc-c++ Step 2:安装包APR和APR-Utilapr-1.4. ...
- fastclick.js介绍
原文地址:http://www.uedsc.com/fastclick.html 用途:去掉移动端click事件的300ms的延迟. 延迟为什么存在 …在移动浏览器中,当你点击按钮的单击事件时,将 ...
- Telnet运用and Sqlserver connection failed
今天的工作中,需要远程访问服务器上的数据库.但是,连接错误,Error code is 1326.说句实话,关于SqlServer 不能远程访问这个问题,我遇到过N次.可是每次都不认真去研究到底是什么 ...