Frage

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);
    }

Was bedeutet COLLATE LOCALIZED ASC Standplatz?

War es hilfreich?

Lösung

Collate ist nur Phantasie sprechen für Art (auch eine Art). Also diese Art ordert basierend auf lokalisierten Präferenzen (das heißt Alphabet der aktuellen Sprache und Konventionen) in asc endet um.

Andere Tipps

Es weist SQLite zu sortieren Nicht-ASCII-Zeichen entsprechend. Chars mit diakritischen Zeichen (manche nennen sie Akzente) höhere Byte-Codes als das Zeichen Z, also eine reine ASCII-Art nicht zu viele Fremdsprachen passen würde.

Zum Beispiel des Kapitals A char des Byte-Code ist 0x41 und die Hauptstadt Z char ist 0x5A. Dann haben wir die Á (Kapital A accute), der Code in Unicode 0x00C1 ist. So ein einfacher Byte-Code-Art die Á nach dem Z führen.

Aber in Sprachen, die diese Art von Zeichen haben die Konvention ist die mit diakritischen Zeichen zu setzen, als ob sie nicht die diakritischen haben. So ist die Á mit der Ebene A zusammen sein sollte, zumindest vor B.

Und zu veranschaulichen, wir unten eine Liste von Namen sortiert haben mit ihrem Bytecode:

  • Brenda
  • Debby
  • George
  • Álvaro
  • Érico

Sie nun die COLLATE LOCALIZED mit ihm durch die „Basis“ des Zeichens sortieren würde:

  • Álvaro
  • Brenda
  • Debby
  • Érico
  • George

COLLATE ist eine SQL-Operator, der die Standard-Sortierreihenfolge für Zeichenfolgen können außer Kraft setzen. Zum Beispiel: „COLLATE NOCASE“ macht Groß- und Kleinschreibung Vergleich und „COLLATE BINARY“ tut Groß- und Kleinschreibung Vergleich.

Die SQLite-C-Schnittstelle können Sie benutzerdefinierte Sortierungen ( definieren http://www.sqlite.org /c3ref/create_collation.html ).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top