7

Ho ottenuto un cursore che recupera tutti i contatti sull'app che hanno un indirizzo. Questo cursore viene quindi passato in un adattatore. Fin qui tutto bene. Tranne che ho anche un sacco di contatti di basso valore (principalmente da Skype) che hanno solo informazioni sullo stato/paese. C'è un modo semplice per modificare l'URI per saltare quelli?Android - Ottenere Elenco contatti con indirizzi ma senza valore basso come Skype dove l'indirizzo è solo una città e stato

public Cursor getDirectoryList (CharSequence constraint) { 

     String[] selectionArguments = { "%"+constraint.toString()+"%" }; 
     String selection = ContactsContract.CommonDataKinds.StructuredPostal.DISPLAY_NAME + " like ?"; 

     Uri uri = ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI; 
     String sortOrder = ContactsContract.CommonDataKinds.StructuredPostal.DISPLAY_NAME + " COLLATE LOCALIZED ASC"; 
     Cursor cr = getContentResolver().query(uri, null, selection, selectionArguments, sortOrder); 

     return cr; 
    } 

risposta

4

È possibile modificare il selection e/o selectionArgs per specificare più criteri, come assicurare che il campo Street non è nullo:

String selection = 
    ContactsContract.CommonDataKinds.StructuredPostal.DISPLAY_NAME + " like ? AND " + 
    ContactsContract.CommonDataKinds.StructuredPostal.STREET + " IS NOT NULL"; 

Questo è solo SQL, in modo da specificare come molti campi da ContactsContract.CommonDataKinds.StructuredPostal, e qualsiasi condizione su di loro, che vuoi.

+0

Perfetto. Ha funzionato come un fascino. – Pyro979

Problemi correlati