做一个Android的通讯录,联系人分组的时候用的是系统数据库中的"sort_key"这个字段,出现问题。

再做一个Android的通讯录,联系人分组的时候用的是系统数据库中的"sort_key"这个字段,但是通过调试发现并不是像网上介绍的这个字段显示的是拼音+汉字,通过logcat显示出来的都是汉字,难道是数据库有了改变?我是用AlphabetIndexer来实现分组的,其中会用到"sort_key"这个字段,有没有其他办法可以实现?

阅读 6.8k
4 个回答

sort_key 换成 phonebook_label

不知你用的是什么设备调试的,我用魅族手机调试就是和你一样的状况,用genymotion或小米手机4就可以正常分组.

原生安卓对于这个字段有日语(罗马音)和汉语(拼音)的注音补完(不知道原生用的啥语言优先级,有些汉字是罗马音,有些汉子是拼音).
miui对于这个字段只有拼音补完,十分方便.

貌似一般都用pinyin4j-2.5.0.jar来做汉字分组排序.

用里面的PinyinHelper.toHanyuPinyinStringArray(char c, format);

新手上路,请多包涵

各个机型这个字段填的不一样。。。

新手上路,请多包涵

确实是这样的,网上好多模仿通讯录的博客,也都是这样写,但是没有效果,有的手机厂商犯贱,没有遵守这个规则,太坑了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题