Android开发之ListView排序

拼音检索与ListView数据展示实战 拼音处理技术是计算机科学领域中的一个重要分支,尤其在中文输入、文字识别以及自然语言处理等方面应用广泛。掌握拼音处理技术对于开发涉及中文字符集的应用程序尤为重要。ListView组件是Android平台上用于显示滚动列表的一个重要的视图组件。它可以显示任意数量的行,这些行的数据源通常来自一个数组、列表或者其他形式的数据集合。ListView通过适配器模式与数据源连接,每个列表项则由适配器返回对应的视图对象。 阅读详情

下面是activity:

[java]  view plain copy
  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 1;  
  28.                 }  
  29.                 return -1;  
  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. }  


下面是工具类:

[java]  view plain copy
  1. public class DateUtil {  
  2.   
  3.     public static Date stringToDate(String dateString) {  
  4.         ParsePosition position = new ParsePosition(0);  
  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:

[java]  view plain copy
  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() : 0;  
  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文件:

[html]  view plain copy
  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>  


 

[html]  view plain copy
  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的类:

[java]  view plain copy
  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按字母排序的城市列表实战指南 本文还有配套的精品资源,点击获取 简介:在Android应用开发中,创建一个根据字母顺序排序的城市列表是常见需求,特别是在地图和信息检索应用中。为了完成这项功能,需要了解UI设计、数据处理及排序算法等关键技术。本文将指导如何实现自定义ListView以展示拼音排序的城市列表,并讨论数据结构处理、UI设计、引入拼音库、字母定位处理、性能优化和UI交互等方面的技术细节。 ... 阅读详情

相关推荐

Android开发之对ListView的数据进行排序.txt

Android开发之对ListView的数据进行排序.txt

Android Adapter以及getView()方法的理解

Android Adapter基本理解: 我的理解是: 1、一个有许多getter的类(就是getView(),getCount()....这些方法) 2、有多少个get方法?都是什么? 这些getter是特定的,你可以复写他们,全部的方法如下 其中一般我们只用复写getCount(),getView(),getItemId(),getItem()这四个方法

Laisx 1万+

Android ListView排序

Android ListView中带有时间数据的排序

android 实现listview的adapter多种布局方式

重写adapter的getItemViewType()和getViewTypeCount()方法可以实现多种布局方式

zhangshao45612的专栏 3915

listview按照内部item的时间属性排序

优快云里面找了好多个,没有找到很好的 自己在别的的基础上添加了备注 绝对可以使用

android ListView根据字母排序和定位----支持混合排序

实现的功能:混合字符串处理 中英文排序 右侧悬浮栏 顶部名称提示栏 滚动悬浮提示,文件里放置了运行的效果图,实现的效果还是让人很满意的 我开发的环境是intellij idea, 导入到eclipse要注意处理一些问题,具体的自己去体会 文件的博客地址:http://blog.csdn.net/touchsnow/article/details/8906180 去看看效果再下载

Android 用ListView实现排序

点击“单价”按钮或“数量信息”按钮,可按据升序或降序进行排序。 布局没什么好说的 在这里插入代码片<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_widt

ZGxiang_的博客 2660

android时间升序降序排序

android处理远程服务器端时间降序或者是升序的操作,listview显示所有的操作!

Android开发之对ListView的数据进行排序

这里涉及到对ListView的数据进行排序,以及ListView的数据如何清空处理。排序的方法相同,但是里面的数据集合有些区别:一种是利用pojo类取得数据;另一种是利用map来取得数据。 第一种:利用pojo类完成排序 pojo类:HuoLiang.class public class HuoLiang { private String dianmian;// 店面 pri...

feelinghappy的专栏 2524

京东商品多维特征提取:基于时空大模型的实时库存预测接口设计

在电商行业,库存管理是供应链的核心环节之一。库存水平过高会导致资金占用、仓储成本增加,而库存水平过低则可能引发缺货风险,影响客户满意度和平台声誉。京东作为中国领先的电商平台,拥有海量的商品数据和复杂的业务场景,传统的库存预测方法难以应对市场动态变化和业务需求。时空大模型作为一种融合时间序列分析和空间特征提取的前沿技术,能够捕捉商品多维特征在时空维度上的变化规律,为实时库存预测提供更精准的决策依据。

FB13713612741的博客 954

高通Camera IFE时钟配置

高通Camera IFE时钟配置中的minHorizontalBlanking和minVerticalBlanking配置计算方法

一个懒癌的驱动工程师的随笔分享 6168

Android中Listview(七)--排序ListView

转载于:http://blog.csdn.net/xiaanming/article/details/12684155 前段时间因为换工作的缘故又恰巧碰到国庆节,所以有段时间自己没有更新博客了,过完国庆到新公司报道,感觉还不错,就是现在住的地方离新公司有点远,地铁20站,伤不起啊,我每天早上7点多就要起床,然后屁颠屁颠的去挤地铁上班,晚上下班还要挤地铁,先不说路程远,车费一天就要10几块

09的专栏 6374

嵌入式下载故障排查:ST-LINK与GD32 Programmer典型问题解决

嵌入式固件烧录是MCU开发的关键环节,其本质依赖于调试器(如ST-LINK、GD-Link)与目标芯片间的协议通信、驱动加载及硬件接口协同。原理上,SWD/JTAG协议需在正确时序、电平与供电条件下完成设备枚举、ID读取与Flash编程;技术价值在于保障量产烧录稳定性与调试可重复性;典型应用场景涵盖STM32/GD32教学开发、工业控制板量产调试及Windows 11新系统适配。本文聚焦ST-LINK-V2在Keil MDK中的下载失败和GD32 All In One Programmer的DLL加载异常两

weixin_35006125的博客 154

android 二级列表拖动排序_Android开发实现可拖动排序的ListView功能【附源码下载】...

本文实例讲述了Android开发实现可拖动排序的ListView功能。分享给大家供大家参考,具体如下:一、上图二、简述1、需要实现的效果是长按右侧可拖动部分布局实现列表项的拖动排序2、当点击列表项前面的单选按钮时,在该条目右侧显示删除图标,点击该图标删除当前条目。三、实现思路借助github上的开源代码drag-sort-listview-master加以改造。四、主要源码展示1、Activity...

weixin_39755712的博客 652

华为OD机考双机位C卷 - 两个字符串间的最短路径(Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 两个字符串间的最短路径(OD上机考试双机位C卷)。提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 835

20 Embedding 与向量检索:语义为什么能变成距离

Embedding 是 RAG 语义检索的数学基础。本文用工程视角讲清文本如何变成向量,为什么语义相近会表现为距离相近,Top-K 检索如何工作,以及在模型选择、同模型约束、精确匹配和召回评估上的常见坑。

老于的笔记的专栏 6204

Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音

点击打开链接

NewStart的专栏 469

浅聊开关电源6:大学生电赛(电源类)之LCL并网滤波器设计(PCB设计,STM32F4xx程序与Simulink仿真)

关于LCL并网滤波器设计的一些小分享

xjtuymh的博客 3653

android:ListView排序

<br />Android: ListView排序<br /><br /><br />ListView通过适配器得到内容数据,可以对数据list先排序再提供给ListView:<br />private List<Map<String, Object>> getData() {<br />List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); <br />//add Data ...<br />//对list进行排序<br

yjg428的专栏 6284

【C++/嵌入式梳理】bootloader

【C++/嵌入式笔试面试八股】bootloader

Hi 1210

踩坑2周总结:Python+YOLO26搭建工业级多路视频分析应用,从单路卡顿到16路4K稳跑30FPS

本文分享了工业级多路视频分析系统的实战经验,针对智慧物流园区的车辆违停和人员安全监测需求,提出了一套完整的解决方案。作者通过踩坑实践,总结出多路视频分析的四大核心痛点:视频流解码瓶颈、推理调度混乱、内存占用爆炸和部署兼容性差。 文章详细介绍了技术选型方案,推荐使用FFmpeg+PyAV进行硬件加速解码、YOLO26+TensorRT INT8量化推理、单进程多线程的生产者-消费者架构,以及内存池复用等技术组合。该方案在RTX 4070 Ti上实现了16路4K视频30FPS稳定运行,GPU利用率达85%以上,

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 955

Android开发 ---实现ListView的A-Z字母排序和过滤搜索功能

效果图: 1、activity.xml   描述:     线性布局中一个层叠布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="m...

weixin_30873847的博客 375

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Android开发技巧--ListView

1. ListView中元素的排序 ListView中的元素排序, 即将数据源排序即可; 给集合排序的方法 : 调用Collections的sort(list, Comparator)方法, 该方法需要2个参数, 第一个参数就是需要排序的集合, 第二个参数是比较器; 这里的比较器需要创建, 并且重写其中的compare()方法, compare()方法返回1或者-1, 用此来控制排序的升序还...

369540808 167

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Android开发经验总结

下文是博主在Android开发过程中,对常见部分问题进行的方法总结与经验杂谈,希望大家多多支持!!!

Hdrosay的博客 6111

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: Android View系统分析之二View与ViewGroup,androidviewgroup
下一篇: FragmentPagerAdapter与FragmentStatePagerAdapter区别
minimicall
博客等级 码龄18年 407粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值