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可能不只是简单的显示下文本或者按钮,更多的是显示复杂的布局,这样的话,我们就得自己写布 ...
随机推荐
- Android使用自带JSONObject解析JSON数据
import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android ...
- MySQL加锁分析
参考:MySQL 加锁处理分析.该文已经讲的很详尽了,也易懂,下面仅仅是个人做的总结. 一. 背景 1.1 隔离级别 1.2 加锁过程 逐条处理,逐条加锁. 1.3 两阶段锁2PL 1.4 gap锁 ...
- POJ_Fibonacci POJ_3070(矩阵快速幂入门题,附上自己写的矩阵模板)
Fibonacci Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10521 Accepted: 7477 Descri ...
- Ubuntu 启动器/快捷方式/ 制作 (Eclipse为例)
首先,在路径/usr/share/applications/,中创建eclipse.desktop(如果没有的话) sudo touch /usr/share/applications/eclipse ...
- Unity Navigation自动寻路
NavMesh(导航网格) 是3D游戏世界中主动寻路的一种技术,如果你想让游戏人物能自动绕开障碍物到达目的地.那你就来学习下 Navigation导航技术吧O(∩_∩)O~ 首先创建一个项目创建Pan ...
- Struts1——从BeanUtils看struts的实现原理2
上一篇博客中我们简单的介绍了BeanUtils的使用.以及其最主要的原理,今天我们进一步的理解这个类在Struts1中的使用. 首先我们先回想一下搭建一个简单的基于Struts1框架的 ...
- [ES7] Object.observe + Microtasks
ES6: If you know about the Javascirpt's event loop. You know that any asyns opreations will be throw ...
- Ant命令行操作
Ant命令行操作 Ant构建文件可以将项目编译,打包,測试,它是Apache软件基金会jakarta文件夹中的一个子项目,具有跨平台性,操作简单,并且非常easy上手. 关于Ant执行,能够在项目中找 ...
- RMAN简单备份
检查目标数据库是否处于归档模式: . 检查数据库模式: sqlplus /nolog conn /as sysdba archive log list (查看数据库是否处于归档模式中) 若为非归档,则 ...
- NET基础课-- 类型基础(NET之美)
1.类型:值类型 引用类型. 分类依据:类型在内存的分配方式.值类型在堆栈,引用类型在托管堆. 名词:栈--所有变量都会被分配在栈上,只不过值类型直接含有数据,引用类型含有一个指向托管堆对象的地址. ...