android中文首字母排序,Android上汉字按拼音排序如何实现?

本文详细解析了Android通讯录中按姓名拼音排序的原理,涉及ContactLocaleUtils.java中的代码和HanziToPinyin工具,以及ICU库的作用。重点介绍了如何通过转换和组合生成sort_key并支持分组功能。
摘要由CSDN通过智能技术生成

具体的代码在

packages\providers\contactsprovider\src\com\android\providers\contacts\ContactL

ocaleUtils.java中的ChineseContactUtils.getSortKey()方法中。

参考一下通讯录的数据库文件中的sort_key字段,一目了然。

具体的做法就是调用com.android.internal.util.HanziToPinyin工具,将名字转换为拼

音,然后根据各种组合和首字母组合生成sort_key。

比如“水木”,生成的可能有"S M" "SHUI M" "SHUI MU" "M S" "MU S"等等。

其实转换为拼音除了Android提供的

frameworks\base\core\java\com\android\internal\util\HanziToPinyin.java以外,

Android中还提供了一个IBM提供的国际语言处理的库ICU。这个库更加强大。

【 在 chenmervyn (神) 的大作中提到: 】

: 就像Contact(通讯录)中的,姓名按拼音排序,并知道是什么拼音,进而分组,是如何

: 实现的?

: PS:找了Contact源码,太多,目前未果。求指点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值