之前做通讯录软件,其中在做拨号盘的时候一直为怎么实现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搜索和号码搜索相关推荐

  1. android 拼音搜索联系人分析与实现(支持多音字,支持T9搜索,支持Qwerty搜索)

    最近的项目开发过程中涉及到了联系人T9键盘搜索和Qwerty键盘搜索,也分别写了相关的博客: <android T9 搜索联系人分析与实现(支持多音字)> <android Qwer ...

  2. Android通讯录模糊匹配搜索实现 号码 首字母 简拼 全拼

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Andr ...

  3. Android:MTK的Dialer模块联系人搜索

    MTK的Dialer模块联系人搜索 拨号搜索机制分为两个部分:引导搜索和搜索.其中引导搜索是指,从用户输入到开始搜索之间的流程,而搜索部分是指,从数据库搜索字符串的过程. 一.引导搜索部分 默认的拨号 ...

  4. 【Android -- 蓝牙】打开蓝牙和设备搜索

    文章目录 一.清单文件中,声明蓝牙权限和定位权限 二.判断是否系统是否支持蓝牙 三.判断蓝牙是否打开 四.搜索设备 五.获取本地蓝牙属性 一.清单文件中,声明蓝牙权限和定位权限 <!--蓝牙权限 ...

  5. Android 高德地图的定位,周边搜索

    刚弄完这两个功能,当然是结合官网例子实现的.效果还行,稍作优化便可整合到app使用.在这里做一下总结,及说明下我的思路. 刚开始上手感觉比较乱学起来也比较累,方法,类太多,直接复制各种错,还不知道为什 ...

  6. android Bluetooth 开发(二):打开、关闭、搜索、允许搜索、查看

    相关项目的下载链接 本项目:点击打开链接 继本项目之后实现了语音识别:点击打开链接 1.承接上一篇文章,本篇文章主要实现了蓝牙的打开 关闭 允许搜索 查看配对设备 2. BluetoothInit,主 ...

  7. Android AutoCompleteTextView控件实现类似百度搜索提示,限制输入数字长度

    Android AutoCompleteTextView 控件实现类似被搜索提示,效果如下 1.首先贴出布局代码 activity_main.xml: <?xml version="1 ...

  8. Android搜索框输入内容点击键盘的搜索按钮进行搜索

    今天测试提出这个问题,就是输入搜索信息点后点击键盘上面的搜索按钮不能进行搜索,因为了解过自定义键盘,所以我第一想到的就是自定义一个键盘,不过怎么想也是有点麻烦,后来问了一下同事,说是可以直接监听现有的 ...

  9. Android Setting 设置项添加到快速搜索

    原生Android系统上适配了setting 快速搜索设置项的问题,主要通过一下两点就可以实现: TestSettings.java TestSettings 实现 Indexable /*** Fo ...

  10. layui+腾讯地图坐标点选取插件,支持地址关键字模糊/联想搜索、当前城市定位、地址地图标点联动

    插件地址: TMap: layui+腾讯地图坐标点选取插件,支持地址关键字模糊/联想搜索.当前城市定位.地址地图标点联动 实际项目中的案例图: html部分: <div class=" ...

最新文章

  1. 小米半年来最大调整:成立技术委员会,雷军称技术事关生死存亡
  2. 前端学习(3267):js中this的指向二
  3. python脚本编程手册_Python 入门指南 — Python2.7 手册 2.7 documentation - 脚本之家在线手册...
  4. 利用Python爬虫批量下载百度图库图片
  5. 指针(指针是什么,指针和指针的类型)
  6. “百度快照劫持”到底是什么意思?
  7. 心电信号质量评估——ecg_qc工具包介绍(二)
  8. 手把手教你逆向分析 Android 程序 1
  9. java ps old gen_PSYoungGen /PSOldGen/PSPermGen区别
  10. HBase环境搭建与基本使用(保姆级教程)
  11. 同步电机仿真永磁同步电机 弱磁控制 simulink仿真模型 凸极电机
  12. java.sql.SQLException: Table 'test.customer' doesn't exist Query: Select id,name,address,phone from
  13. python 获取巨量星图数据
  14. 在线点餐系统(SSM毕业设计)
  15. 什么是领导力?如何提升领导力?
  16. 卖完电视卖电脑,百年东芝是怎么没落的?
  17. 使用JAVA写一个简单的日历
  18. Python读取中文Excel问题解决
  19. fastposter v2.6.1 发布 程序员专属海报生成器
  20. pycharm 2018注册码和激活补丁 附安装教程

热门文章

  1. FTP服务器FileZilla Server配置及使用方法
  2. Java利用MessageDigest获取字符串或文件MD5详解
  3. 算法分析与设计实验报告二——贪心算法实验
  4. pe_xscan作了3点更新 1
  5. Django中文文档-The Django Book
  6. 永中office之在线预览(java版)
  7. C语言strcmp函数
  8. rtmp/rtsp直播播放器选择
  9. 【白帽子讲Web安全】第一章 我的安全世界观
  10. 如何在TransCAD中制作美观的地图