之前做通讯录软件,其中在做拨号盘的时候一直为怎么实现T9输入烦恼,上网找了很多帖子,都没有满意的答案。

不过最后终于是实现了,看社区内好像也有不少朋友需要,在此分享一下。

这个是在我项目中提取出来的拨号盘案例,功能上完全实现了目前其他通讯录中拨号盘的功能,但在加载效率上还有不足,请各位大侠指教。

有图有真相:

目前我用1g单核cpu的索爱mt15i的测试机,1500多的联系人,加载时间大概在8秒左右,当然,一般用户不会有这么多联系人的。

由于我做的程序不是在一开始的界面就是拨号盘,所以我在程序已开始就在后台异步加载联系人,

等到拨号盘的界面,联系人加载也差不多完成了。

不过我觉得每次在程序开始都读取联系人的数据,把他们整理成t9搜索需要的数据有些慢,

最好还是自己建张表来存放,然后监听联系人表的变化动态更新t9数据。

如果大家有更好更快的想法,希望能分享一下!

部分代码:

public class ToPinYin {

/**

* 将传递的汉字list转换成拼音List

* @param list

*/

public static List getPinyinList(List list){

List pinyinList = new ArrayList();

for(Iterator 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;

}

Android自定义T9拨号键盘,Android拨号盘 支持T9搜索和号码搜索等拨号盘案例相关推荐

  1. android 自定义数字软键盘,Android自定义键盘的实现(数字键盘和字母键盘)

    在项目中,产品对于输入方式会有特殊的要求,需要对输入方式增加特定的限制,这就需要采用自定义键盘.本文主要讲述数字键盘和字母键盘的自定义实现. 自定义键盘的实现步骤如下: 自定义CustomKeyboa ...

  2. Android 自定义安全软键盘 SafeKeyboard 开发详细说明 2.0

    Android 自定义安全软键盘 SafeKeyboard 开发详细说明 2.0 源码地址:GitHub:    https://github.com/SValence/SafeKeyboard 注意 ...

  3. android 自定义本地验证码demo,Android 自定义验证码输入框的实例代码(支持粘贴连续性)...

    需求 1.能自定义输入框个数和样式 2.支持长按粘贴或剪切板内容自动填充(粘贴连续性) 其中第2点是最为重要的,正是其他人没有这点,逼得自己弄一个 示例 别人的示例: 粘贴居然不支持连续性,只能粘贴第 ...

  4. 小米计算机弹歌曲,趣味冷知识!小米的T9拨号键盘可以弹乐曲,没想到吧!快来试试!...

    小伙伴们,大家好,小编是[漫画与笑话每一天],今天要为大家介绍的是:冷知识,它可以让人增长见识,开阔视野,还能启迪思维,引发强烈求知欲.和"冷笑话"属于另类幽默一样,冷知识虽冷门但 ...

  5. Android自定义输入法软键盘

    1 功能描述 触屏设备主界面中有一个文本编辑框,底部区域固定显示一个数字键盘,键盘中除数字键外,还带有*和#键功能: 提供一个自定义的数字输入法,生成apk安装包文件,嵌入到img镜像文件中去. 2 ...

  6. Android自定义记账软键盘(仿鲨鱼记账的记账功能)

    鲨鱼记账App效果: 本文实现的效果图: 本文 不是什么原理分析,属于使用工具,不再具体分析.直接贴图贴代码了 自定义软键盘的XML模版 注:android:codes的值,请参考ASCII < ...

  7. Android 自定义数字虚拟键盘

    大概两年没写文章了,有些生疏,不知如何动笔,很早以前有过转行的想法,想过考公务员,所以重心不在程序上.近期通过内推的形式入职了一家大公司(社保公积金缴全额,双休,带薪十三天年假,少加班),这么好的福利 ...

  8. Android自定义文件路径箭头,Android自定义ViewGroup实现带箭头的圆角矩形菜单

    本文和大家一起做一个带箭头的圆角矩形菜单,大概长下面这个样子: 要求顶上的箭头要对准菜单锚点,菜单项按压反色,菜单背景色和按压色可配置. 最简单的做法就是让UX给个三角形的图片往上一贴,但是转念一想这 ...

  9. android自定义view生命周期,android基础之自定义view

    一.Custom View 1.view的继承关系 view继承关系.png 2.Android 如何绘制试图层次 当activity获取焦点时,它必须提供layout层次的根节点,然后android ...

  10. android 自定义相机源码,Android 自定义相机及分析源码

    Android 自定义相机及分析源码 使用Android 系统相机的方法: 要想让应用有相机的action,咱们就必须在清单文件中做一些声明,好让系统知道,如下 action的作用就是声明action ...

最新文章

  1. 【linux】图形界面基础知识(X、X11、GNOME、Xorg、KDE的概念和它们之间的关系)
  2. 皮纹生物识别多元智力测量的科学原理
  3. nginx常用功能全揭秘(内附福利!!!)
  4. 在ASP.Net中两种利用CSS实现多界面的方法(转)
  5. 从零开始学习Hadoop--第2章 第一个MapReduce程序
  6. CSS实现垂直居中布局
  7. 做系统的U盘如何格式化
  8. 小米10S继承“祖传”三重快充:50W有线+30W无线+10W反充
  9. ThreeJS 实现等值线效果
  10. calloc()函数
  11. 公众号网课查题-掘光者题库系统
  12. 使用TextPaint实现自由加粗字体:BoldTextView,支持中粗
  13. ProxySQL+MGR实现读写分离和主节点故障无感知切换
  14. matlab设置命令行窗口和编辑器上下显示
  15. 摄影图片分享网站项目制作总结
  16. MATLAB技术沙龙之如何批量处理图像的大小
  17. 【CNC——第9.1篇】使用Setup引导程序整定步进电机(开环步进电机整定方式之1)
  18. Drupal 常用模块汇总
  19. 输入股票代码判断深市还是沪市,python
  20. 张瑞申教授SSRN论文数据公开 | 公司层面气候变化暴露指数

热门文章

  1. JavaWeb学习心得
  2. MessageDigest 详解
  3. CImageList用法介绍
  4. MODIS数据火点提取方法
  5. 怎么打开计算机管理模板,win10系统打开组策略弹出管理模板提示框怎么办
  6. 关于Win10系统下VIA HD AUDIO威盛声卡没声音问题 - 有效解决办法
  7. 计算机网络专业运动会入场式,高校运动会方阵入场式花样百出
  8. 每个极客都应该知道的Linux命令
  9. 小米浏览器禁用java_小米手机调试总出现“INSTALL_CANCELED_BY_USER”
  10. java jsp试卷_JSP试题-带答案