Android实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
转载请注明出处:http://blog.csdn.net/xiaanming/article/details/12684155
前段时间因为换工作的缘故又恰巧碰到国庆节,所以有段时间自己没有更新博客了,过完国庆到新公司报道,感觉还不错,就是现在住的地方离新公司有点远,地铁20站,伤不起啊,我每天早上7点多就要起床,然后屁颠屁颠的去挤地铁上班,晚上下班还要挤地铁,先不说路程远,车费一天就要10几块,我的银子啊,有坐龙华线去上班的深圳程序员不?听说那条线上班高峰期很挤?我没在上班高峰期坐过那趟车,我在民治那边找了个房子,离华强北也不远,关键房租便宜,哈哈,乐开花了,下个礼拜就要搬过去啦
不扯了,回到主题,今天给大家带来ListView的A-Z字母排序和过滤搜索功能并且实现汉字转成拼音的功能,我们知道一般我们对联系人,城市列表等实现A-Z的排序,因为联系人和城市列表我们可以直接从数据库中获取他的汉字拼音,而对于一般的数据,我们怎么实现A-Z的排序,我们需要将汉字转换成拼音就行了,接下来就带大家实现一般数据的A-Z排序功能,首先先看下效果图



上面是一个带删除按钮的EditText,我们在输入框中输入可以自动过滤出我们想要的东西,当输入框中没有数据自动替换到原来的数据列表,然后下面一个ListView用来显示数据列表,右侧是一个字母索引表,当我们点击不同的字母,ListView会定位到该字母地方,了解了布局之后,我们先看下项目结构吧

我按照项目中类的顺序来一一介绍其功能
1.SortModel 一个实体类,里面一个是ListView的name,另一个就是显示的name拼音的首字母
package com.example.sortlistview;import java.util.Comparator;/** * * @author xiaanming * */public class PinyinComparator implements Comparator<SortModel> {public int compare(SortModel o1, SortModel o2) {//这里主要是用来对ListView里面的数据根据ABCDEFG...来排序if (o2.getSortLetters().equals("#")) {return -1;} else if (o1.getSortLetters().equals("#")) {return 1;} else {return o1.getSortLetters().compareTo(o2.getSortLetters());}}}这样我们以后使用A-Z排序就没要局限性了,想加这个效果随时都行,其他的布局和图片之类的文件就不贴出来了,如果大家有兴趣的自行去下载代码吧,如果大家有什么疑问,请在下面留言,我会为大家解答的!
项目源码,点击下载
- 11楼u01114838329分钟前
- 思路清晰,逻辑贯穿,代码注释够足,值得借鉴,好东西,收了.................
- 10楼xdx2ct1314昨天 21:12
- 请问楼主,排序完成后 如果我输入张,那么怎样显示所有姓张的名字呢?
- Re: xiaanming56分钟前
- 回复xdx2ct1314n我这里有实现这个功能的
- 9楼ALoveBtoC昨天 20:09
- 定一个,收藏鸟!
- 8楼wuwen__zhousi昨天 18:01
- 非常不错,项目中可以用到!
- 7楼jingdalu昨天 17:53
- 向你学习
- 6楼u011423845昨天 16:16
- 不错,收藏下
- 5楼sara_loveyou昨天 16:02
- 有条不紊,思绪清晰。
- 4楼liutengt昨天 11:52
- 不错 ,wp有这样的控件nandroid也应该搞个
- Re: xiaanming昨天 11:54
- 回复liutengtn你是搞WP开发的?
- 3楼u010820184昨天 11:08
- 很详细,还开源,nice!
- 2楼u011960402昨天 09:47
- 不错,很好
- 1楼suannai0314昨天 09:05
- 您的文章已被推荐到CSDN首页,感谢您的分享。
- Re: xiaanming昨天 09:34
- 回复suannai0314n感谢推荐!
