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可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布 ...
随机推荐
- 《Programming WPF》翻译 第9章 1.自定义控件基础
原文:<Programming WPF>翻译 第9章 1.自定义控件基础 在写一个自定义控件之前,你需要问的第一个问题是,我真的需要一个自定义控件吗?一个写自定义控件的主要原因是为了用户界 ...
- myeclipse中控制台日志比实际晚8小时解决方法及java日志处理
今天终于忍不住要解决myeclipse控制台中日志显示比实际晚8小时的问题,开始以为myeclipse编辑器时间问题,后来想想不对,myeclipse控制台打印的是tomcat的日志,随后以为是log ...
- lazy load 图片延迟加载 跟随滚动条
http://plugins.jquery.com/lazyload/ Jquery.LazyLoad.js插件参数详解: 1,用图片提前占位 placeholder : "img/grey ...
- (heap)239. Sliding Window Maximum
题目: Given an array nums, there is a sliding window of size k which is moving from the very left of t ...
- MVC Razor视图引擎
Razor 不是编程语言.它是服务器端标记语言. Razor 是一种允许您向网页中嵌入基于服务器的代码(Visual Basic 和 C#)的标记语法 当网页被写入浏览器时,基于服务器的代码能够创建动 ...
- EffectiveC#00--选择定义和实现接口,而不是继承
1.继承就是说它是某物(is a的关系),针对相关类,而接口是说它有某个功能(behaves like.)可以是不相关的 基类是描述对象是什么,接口描述对象有某种行为. 2.不能在接口里提供任何成员的 ...
- Linq GroupJoin 使用
备忘: var data = BoshccEntities.Current.TB_MB_1 .GroupJoin(BoshccEntities.Current.TB_MB_2, o => o.H ...
- hbase权威指南学习笔记--过滤器
1.使用hbase是shell客户端进行过滤查询 scan 'testtable',{COLUMNS=>'colfam1:col-0',FILTER=>RowFilter.new(Comp ...
- Android布局自定义Shap圆形ImageView,可以单独设置背景与图片
一.图片预览: 一.实现功能: 需求要实现布局中为圆形图片,图片背景与图标分开且合并到一个ImageView. 二.具体实现: XML中布局中定义ImageView, ...
- java——拷贝文件夹方法
public void copyFolder(String oldPath, String newPath) { try { (new File(newPath)).mkdirs(); //如果文件夹 ...