private Cursor getContacts()
    {
        // Run query
        Uri uri = ContactsContract.Contacts.CONTENT_URI;
        String[] projection = new String[] {
                ContactsContract.Contacts._ID,
                ContactsContract.Contacts.DISPLAY_NAME
        };
        String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '" +
                (mShowInvisible ? "0" : "1") + "'";
        String[] selectionArgs = null;
        String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";

        return managedQuery(uri, projection, selection, selectionArgs, sortOrder);
    }

这是什么 COLLATE LOCALIZED ASC 立场?

有帮助吗?

解决方案

逐为排序只是看上说话(排序井)。因此,这是排序顺序基于本地化的喜好(即当前语言的字母和公约)在递增结束顺序。

其他提示

它指示源码排序non-ASCII characters适当。字符用变音符号(有人称他们的口音)有更高的字节的代码比字Z,这样一个普通的ASCII排序,不适合许多外国语言。

例如,资本char的字节的代码是 0x41 和首都Z char是 0x5A.然后我们有Á(资本的一个accute)的代码在Unicode是 0x00C1.因此,一个普通的字节的代码类会结果的Á以后Z。

但是,在语言具有这样的人物的公约》是把这些用变音符号,如果他们没有变音符号.所以Á应该在一起,与普通的一个,至少前B。

并说明,我们下面列表中的排名使用他们的码:

  • 布伦达
  • 黛比
  • 乔治
  • Álvaro
  • Érico

现在使用的 COLLATE LOCALIZED 它将按"基地"的字:

  • Álvaro
  • 布伦达
  • 黛比
  • Érico
  • 乔治

整理是一个SQL操作,让你复盖默认的排列顺序为串。例如,"核对NOCASE"不情况不敏感的比较,和"核对二元"并的情况下敏感的比较。

该源码C口可以定义定义的排序规则(http://www.sqlite.org/c3ref/create_collation.html).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top