Android拨号盘,支持T9搜索和号码搜索
之前做通讯录软件,其中在做拨号盘的时候一直为怎么实现T9输入烦恼,上网找了很多帖子,都没有满意的答案。
不过最后终于是实现了,看社区内好像也有不少朋友需要,在此分享一下。
这个是在我项目中提取出来的拨号盘案例,功能上完全实现了目前其他通讯录中拨号盘的功能,但在加载效率上还有不足,请各位大侠指教。
有图有真相:
目前我用1g单核cpu的索爱mt15i的测试机,1500多的联系人,加载时间大概在8秒左右,当然,一般用户不会有这么多联系人的。
由于我做的程序不是在一开始的界面就是拨号盘,所以我在程序已开始就在后台异步加载联系人,
等到拨号盘的界面,联系人加载也差不多完成了。
不过我觉得每次在程序开始都读取联系人的数据,把他们整理成t9搜索需要的数据有些慢,
最好还是自己建张表来存放,然后监听联系人表的变化动态更新t9数据。
如果大家有更好更快的想法,希望能分享一下!
部分代码:
public class ToPinYin {/*** 将传递的汉字list转换成拼音List* @param list*/public static List<String> getPinyinList(List<String> list){List<String> pinyinList = new ArrayList<String>();for(Iterator<String> i=list.iterator(); i.hasNext();) {String str = (String)i.next();try {String pinyin = getPinYin(str);pinyinList.add(pinyin);} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}}return pinyinList;}/*** 将中文转换成拼音* @param 拼音-汉字* @return*/public static String getPinYin(String zhongwen) throws BadHanyuPinyinOutputFormatCombination { String zhongWenPinYin = ""; char[] chars = zhongwen.toCharArray(); for (int i = 0; i < chars.length; i++) { String[] pinYin = PinyinHelper.toHanyuPinyinStringArray(chars[i], getDefaultOutputFormat()); // 当转换不是中文字符时,返回null if (pinYin != null) { zhongWenPinYin += pinYin[0]; } else { zhongWenPinYin += chars[i]; } } return zhongWenPinYin; } /** * 输出格式 * * @return */ private static HanyuPinyinOutputFormat getDefaultOutputFormat() { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); format.setCaseType(HanyuPinyinCaseType.UPPERCASE);// 大写 format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 没有音调数字 format.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);// u显示 return format; }
源码下载
转载于:https://www.cnblogs.com/nuliniaoboke/archive/2012/12/11/2813042.html
Android拨号盘,支持T9搜索和号码搜索相关推荐
- android 拼音搜索联系人分析与实现(支持多音字,支持T9搜索,支持Qwerty搜索)
最近的项目开发过程中涉及到了联系人T9键盘搜索和Qwerty键盘搜索,也分别写了相关的博客: <android T9 搜索联系人分析与实现(支持多音字)> <android Qwer ...
- Android通讯录模糊匹配搜索实现 号码 首字母 简拼 全拼
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Andr ...
- Android:MTK的Dialer模块联系人搜索
MTK的Dialer模块联系人搜索 拨号搜索机制分为两个部分:引导搜索和搜索.其中引导搜索是指,从用户输入到开始搜索之间的流程,而搜索部分是指,从数据库搜索字符串的过程. 一.引导搜索部分 默认的拨号 ...
- 【Android -- 蓝牙】打开蓝牙和设备搜索
文章目录 一.清单文件中,声明蓝牙权限和定位权限 二.判断是否系统是否支持蓝牙 三.判断蓝牙是否打开 四.搜索设备 五.获取本地蓝牙属性 一.清单文件中,声明蓝牙权限和定位权限 <!--蓝牙权限 ...
- Android 高德地图的定位,周边搜索
刚弄完这两个功能,当然是结合官网例子实现的.效果还行,稍作优化便可整合到app使用.在这里做一下总结,及说明下我的思路. 刚开始上手感觉比较乱学起来也比较累,方法,类太多,直接复制各种错,还不知道为什 ...
- android Bluetooth 开发(二):打开、关闭、搜索、允许搜索、查看
相关项目的下载链接 本项目:点击打开链接 继本项目之后实现了语音识别:点击打开链接 1.承接上一篇文章,本篇文章主要实现了蓝牙的打开 关闭 允许搜索 查看配对设备 2. BluetoothInit,主 ...
- Android AutoCompleteTextView控件实现类似百度搜索提示,限制输入数字长度
Android AutoCompleteTextView 控件实现类似被搜索提示,效果如下 1.首先贴出布局代码 activity_main.xml: <?xml version="1 ...
- Android搜索框输入内容点击键盘的搜索按钮进行搜索
今天测试提出这个问题,就是输入搜索信息点后点击键盘上面的搜索按钮不能进行搜索,因为了解过自定义键盘,所以我第一想到的就是自定义一个键盘,不过怎么想也是有点麻烦,后来问了一下同事,说是可以直接监听现有的 ...
- Android Setting 设置项添加到快速搜索
原生Android系统上适配了setting 快速搜索设置项的问题,主要通过一下两点就可以实现: TestSettings.java TestSettings 实现 Indexable /*** Fo ...
- layui+腾讯地图坐标点选取插件,支持地址关键字模糊/联想搜索、当前城市定位、地址地图标点联动
插件地址: TMap: layui+腾讯地图坐标点选取插件,支持地址关键字模糊/联想搜索.当前城市定位.地址地图标点联动 实际项目中的案例图: html部分: <div class=" ...
最新文章
- 小米半年来最大调整:成立技术委员会,雷军称技术事关生死存亡
- 前端学习(3267):js中this的指向二
- python脚本编程手册_Python 入门指南 — Python2.7 手册 2.7 documentation - 脚本之家在线手册...
- 利用Python爬虫批量下载百度图库图片
- 指针(指针是什么,指针和指针的类型)
- “百度快照劫持”到底是什么意思?
- 心电信号质量评估——ecg_qc工具包介绍(二)
- 手把手教你逆向分析 Android 程序 1
- java ps old gen_PSYoungGen /PSOldGen/PSPermGen区别
- HBase环境搭建与基本使用(保姆级教程)
- 同步电机仿真永磁同步电机 弱磁控制 simulink仿真模型 凸极电机
- java.sql.SQLException: Table 'test.customer' doesn't exist Query: Select id,name,address,phone from
- python 获取巨量星图数据
- 在线点餐系统(SSM毕业设计)
- 什么是领导力?如何提升领导力?
- 卖完电视卖电脑,百年东芝是怎么没落的?
- 使用JAVA写一个简单的日历
- Python读取中文Excel问题解决
- fastposter v2.6.1 发布 程序员专属海报生成器
- pycharm 2018注册码和激活补丁 附安装教程