【发布时间】:2011-05-13 19:56:10
【问题描述】:
这是我的问题:我正在编写一个替代联系人应用程序,该应用程序指定使用很多不同的语言和字母表。当用我自己的语言瑞典语查询名字时,使用元音变音字符的名字对我来说是不合逻辑的,但我想对 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 上添加了它作为问题。
【问题讨论】:
-
您确定设备具有正确的区域设置吗?尝试使用 SQLiteDatabase.setLocale
-
数据库是由安卓系统管理的,setLocale(Locale l) 不是静态函数。当我在解释文档(2.2)时,整理器 LOCALIZED 应该能够管理这种排序 - 但他们没有任何文档(文档说,需要 XXX 链接!:P)
标签: android sqlite localization contacts collation