这是我的问题:我正在编写一个替代联系人应用程序,指定可以使用很多不同的语言和字母表.使用我自己的语言瑞典语查询名称时,使用变音字符的名称以不合逻辑的方式排序给我,但我认为unicode符合逻辑:
应该是/瑞典风格:A,B,C,……,Z,Å,Ä,Ö.
查询结果:A,Å,Ä,B,…,N,O,Ö,P,……
我认为这将是任何偏离拉丁字母的语言中的问题.我所做的所有测试都在模拟器上.我的开发小组正在对框架进行更改,因此也欢迎低级别的答案.
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.disPLAY_NAME,
ContactsContract.Contacts.PHOTO_ID
};
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '1'";
String sortOrder = ContactsContract.Contacts.disPLAY_NAME + " COLLATE LOCALIZED ASC";
mCursor = managedQuery(uri, projection, null, null, sortOrder);
更新:我们正在调查此曲目:Sort a String array,TBC …
我还在Google Code上将其添加为问题.
解决方法:
Gaah.它似乎是这样的:
在vanilla Java(SE-1.6)中运行以下代码会生成所需的输出:
String strings[] = {"Åke", "Äskil", "otto", "Adam", "Örjan", "Palle", "Nisse"};
Locale locale = new Locale("sv", "SE");
Collator collator = java.text.Collator.getInstance(locale);
java.util.Arrays.sort(strings, collator);
但Android中的相同代码对我不起作用.
编辑:我在Android Google Code网站上创建了一个issue,它已被评论者评论过.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。