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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296233.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈.Net异步编程的前世今生----异步函数篇(完结)

前言上一篇我们着重讲解了TPL任务并行库&#xff0c;可以看出TPL已经很符合现代API的特性&#xff1a;简洁易用。但它的不足之处在于&#xff0c;使用者难以理解程序的实际执行顺序。为了解决这些问题&#xff0c;在C# 5.0中&#xff0c;引入了新的语言特性&#xff0c;被称为异…

NSInteger,NSUInteger,NSNumber

2019独角兽企业重金招聘Python工程师标准>>> Objective-C入门教程10:数字类型&#xff08;NSInteger,NSUInteger,NSNumber&#xff09; 柳志超博客 Program Objective-C Objective-C入门教程10:数字类型&#xff08;NSInteger,NSUInteger,NSNumber&#xff09; p…

作业优先调度java代码_如何在触发它时在java代码中为hadoop作业设置优先级?

这是我的工作人员的外表。如何在触发这项工作时设定低优先级&#xff1f;public int run(String[] args) throws Exception {this.initJob();Path outputPath new Path(args[2]);FileInputFormat.setInputPaths(job, args[0]);FileOutputFormat.setOutputPath(job, outputPath…

听说麦当劳,买一个雪糕就送一个男友!

1 麦当劳买雪糕免费送男友&#xff01;▼2 当90后成了家长......▼3 不要跟有鼻子的人握手可能刚刚扣过鼻屎▼4 鸟&#xff1a;别瞎玩&#xff01;快开车&#xff01;▼5 凭实力当上群主&#xff01;▼6 要是有喜欢的女生千万不要问她闺蜜的意见▼7 终于&#xff0c;我们…

07公务员考试公共基础知识模拟试卷1及答案--A

本试题分两部分&#xff0c;第一部分为客观试题&#xff0c;第二部分为主观试题&#xff0c;客观试题60分&#xff0c;主观试题40分&#xff0c;满分100分。考试时间180分钟。第一部分客观试题 一 单项选择题 1&#xff0e;2006年12月29&#xff0c;十届全国人大常委会二十五次…

windows server 2008更新补丁失败排错

首先描述故障故障&#xff1a;1&#xff0c;windows服务器上丢失了共享磁盘。2&#xff0c;打开服务器管理器报错3&#xff0c;更新补丁报错&#xff0c;错误代码&#xff1a;800B01004&#xff0c;手动安装.net 3.5安装包同样报错话说这次出差帮客户解决问题。遇到了这样一个错…

WPF实现统计图

WPF开发者QQ群&#xff1a; 340500857 | 微信群 -> 进入公众号主页 加入组织有小伙伴提出需要实现统计图。 由于在WPF中没有现成的统计图控件&#xff0c;所以我们自己实现一个。PS&#xff1a;有更好的方式欢迎推荐。01—代码如下一、创建 Basi…

java guava json文件_Json解析文件位置的问题

有这么一段Json{"name": "java3d:vecmath:1.3.1"},{"name": "net.sf.trove4j:trove4j:3.0.3"},{"name": "com.ibm.icu:icu4j-core-mojang:51.2"},{"name": "net.sf.jopt-simple:jopt-simple:4.5&q…

在此之前的软件系统做开发—需求的研究框架

最近的研究需要做一个软件&#xff0c;从一些方面中学习了下面的。当然&#xff0c;这些都是需求只是初步框架。也创下了基本的设计和开发&#xff0c;只是让软件公司可能对软件整体的了解需求和促进软件有一个粗略的估计。公司 实现的根本目的 现有的软件的情况下&#xff08;…

手绘图解:从零维到十维空间

全世界只有3.14 % 的人关注了爆炸吧知识事情是这样的&#xff0c;这周我给学生讲3dmax的课。为了让学生了解三视图我就顺便科普了一下什么是零维、一维、二维、三维空间。讲完不过瘾&#xff0c;感觉一支粉笔一块黑板讲维度是一件很爽的事情&#xff0c;那么.........接下来请同…

[for循环之等腰三角形]

public class IsoscelesTriangle { /*** 等腰三角形*/public void print1(){//形如 ▲向上的 for(int i1;i<5;i){for(int k1;k<5-i;k)System.out.print(" ");for(int j1;j<2*i-1;j)System.out.print("*");System.out.print("\n");}}pub…

ISA server的常见身份验证方式

ISA 2006的几种常用验证方式&#xff1a;1. 基本验证&#xff1a;此验证方式不会被加密&#xff0c;只是以明文的方式来传递信息&#xff0c;不安全。如果在“网络”的“内部”属性中将“域”选项卡里边的“选择域”来配置默认域&#xff0c;那么就会把用户送来的帐户与密码信息…

字节前端终于开源!吹爆!

Semi Design 发布&#xff0c;前端同学的福音大家好&#xff0c;我是鱼皮。最近&#xff0c;字节跳动的抖音前端技术团队开源了一款企业级应用设计系统 Semi Design 。这也是他们团队在 GitHub 上首次公开的项目&#xff0c;短短几天&#xff0c;就收获了 3.6 k 个 star。GitH…

CSS2-3常见的demo列子总结

CSS2-3常见的demo列子总结 阅读目录 1. css超过一行或者多行后显示省略号。2. css图片未知高度垂直居中完美解决方案。3. 学习使用 :before和 :after伪元素回到顶部1. css超过一行或者多行后显示省略号。 Css实现超过一行后显示省略号&#xff1b;代码如下&#xff1a;<p st…

18张难以置信的照片,封面这张你就没见过

全世界只有3.14 % 的人关注了爆炸吧知识感谢网络&#xff0c;只要点几下鼠标&#xff0c;就能看到我们以前从未见过的东西——有些甚至是难以置信的&#xff01;鲸鱼的心脏水中的鲨鱼卵幼年的箭鱼萌萌哒世界上最高的棕榈树&#xff0c;简直以为是PS的没见过的话&#xff0c;很容…

Java 关于中文乱码处理的经验总结

为什么说乱码是中国程序员无法避免的话题呢&#xff1f;这个首先要从编码机制上说起&#xff0c;大家都是中文和英文的编码格式不是一样&#xff0c;解码也是不一样的&#xff01;如果中国的程序员不会遇到乱码&#xff0c;那么只有使用汉语编程。汉语编程是怎么回事我也不大清…

[信息收集] HCOMP 2010概况及收录论文

这是第二届HCOMP. 全称&#xff1a;Human Computation Workshop(HCOMP2010) 时间&#xff1a;July 25, 2010 地点&#xff1a;Washington, D.C., USA 收录论文情况&#xff1a;共有4个session&#xff0c; 包括&#xff1a; Invited Talk(1篇&#xff09;, Market design(3篇),…

.NET 生态系统的蜕变之 .NET 6

.NET 6 是自.NET 4 框架以来生态系统看到的最大版本更新&#xff0c;虽然.NET Core 是2014年开始非常大的一项重大战略举措&#xff0c;但是.NET 6是真正的具有强大动力的非常重要的版本。2021年11月9日即将正式发布的.NET 6, 也许你认为.NET 5才刚刚发布&#xff0c;我才刚开始…

C语言程序读写文件(文件内存一个十进制数,每读一次数值加一)

1.问题&#xff1a;C语言程序实现读写一个txt文件&#xff0c;txt文件中存储一个十进制数、每读一次该数值加一。 2.实现&#xff1a;新建一个文件夹&#xff0c;在该文件夹中建一个outputFileName.txt文件、内容是&#xff1a;1&#xff0c;再在该文件夹中新建一个t.c文件、内…

php 电梯程序设计,教你写出京东电梯式轮播

效果知识点&#xff1a;企业布局技巧&#xff0c;如何高效的编写CSS样式&#xff0c;常用选择器&#xff0c;基本标签&#xff0c;盒子模型&#xff0c;jquery类库调用&#xff0c;JS特效编写&#xff0c;JS编程思维等。京东电梯式轮播源码&#xff1a;Document*{margin:0px;}/…