手机
当前位置:查字典教程网 >编程开发 >安卓软件开发 >Android拨号盘 支持T9搜索和号码搜索等拨号盘案例
Android拨号盘 支持T9搜索和号码搜索等拨号盘案例
摘要:之前做通讯录软件,其中在做拨号盘的时候一直为怎么实现T9输入烦恼,上网找了很多帖子,都没有满意的答案。不过最后终于是实现了,看社区内好像也有...

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

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

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

有图有真相:

Android拨号盘 支持T9搜索和号码搜索等拨号盘案例1

Android拨号盘 支持T9搜索和号码搜索等拨号盘案例2

Android拨号盘 支持T9搜索和号码搜索等拨号盘案例3

目前我用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;

}

【Android拨号盘 支持T9搜索和号码搜索等拨号盘案例】相关文章:

Android列表实现(2)_游标列表案例讲解

Android开发笔记 改变字体颜色的三种方法

android 修改代码怎样编译

Android中隐藏标题栏和状态栏的方法

android滑动解锁震动效果的开启和取消

基于Android本地代码生成器详解

android开发之方形圆角listview代码分享

android实现横屏的代码及思路

Android SQLite数据库增删改查操作的案例分析

Android中手机号码归属地查询实现

精品推荐
分类导航