2012-12-11 11 views
12

La mia intenzione è quella di visualizzare i contatti in ordine ordinamento utilizzando content resolver in Android.visualizzare i contatti in ordinamento ContactsContract.Contacts ordine di Resolver Content

Per che sto scrivendo:

Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
          ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = ?", new String[] { id }, null); 

occorre che l'ultimo parametro nel metodo di query non deve essere nullo per l'ordinamento degli elementi da Name. Quale parte di codice devo sostituire il parametro null per ottenere l'ordinamento in base al nome? O si prega di aiutarmi interrogazione in tal caso ...

Grazie in anticipo

risposta

30

Per ordinare i risultati in base al nome utilizzo Phone.DISPLAY_NAME costante con ASC come ultimo parametro a query metodo. Fatelo come:

Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
        null, 
        ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = ?", 
        new String[] { id }, 
        ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME+" ASC"); 
+0

Ti capita di sapere dove trovare l'elenco dei diversi valori delle costanti per l'ordinamento. Presumo che "DEC" potrebbe essere il contrario, ma per quanto riguarda le altre forme di ordinamento? – NVA

+0

cosa c'è {id} qui? – Gibs

8

È possibile utilizzare Upper() per ordinare per entrambi inferiori, così come il nome caso contatto superiore.

ContentResolver cr = getContentResolver(); 

Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, 
     null, null, "upper("+ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + ") ASC"); 
+0

Un metodo di ordinamento standard (che non utilizza la parte superiore) dà peso alle lettere maiuscole? Ad esempio i nomi in maiuscolo saranno PRINCIPALI in minuscolo? Se è così, è questo il motivo che sta dietro la tua "upper (" linea di codice? Se no, cosa fa? – Silmarilos

8

Sarebbe meglio usare SORT_KEY_PRIMARY o SORT_KEY_ALTERNATIVE il livello di API 11 e successive.

Cursor cursor = getContentResolver().query(
    ContactsContract.Contacts.CONTENT_URI, 
    null, null, null, 
    ContactsContract.Contacts.SORT_KEY_PRIMARY + " ASC"); 
+0

funziona anche a livello di API 10 –

+0

@Hamidreza sei sicuro? "SORT_KEY_PRIMARY' è stato introdotto nell'API 11 ... –

+0

Questa dovrebbe essere la risposta corretta. – Android

Problemi correlati