Android联系人:不正确的本地化排序/排序

这是我的问题:我正在编写一个替代联系人应用程序,指定可以使用很多不同的语言和字母表.使用我自己的语言瑞典语查询名称时,使用变音字符的名称以不合逻辑的方式排序给我,但我认为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,它已被评论评论过.

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能