Sto cercando di ottenere gli ID e-mail dei contatti di utilizzo. Per quello sto usando Cursor Loader. C'è un problema che sto ottenendo anche ID e-mail duplicati. Come rimuovere la duplicazione della posta elettronica. Dovrei usare la query raw "SELECT DISTINCT" invece di usare CursorLoader o c'è qualche altra soluzione?Utilizzo di CursorLoader per ottenere e-mail causa la duplicazione delle e-mail
@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
String[] projection = new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME, ContactsContract.CommonDataKinds.Email.DATA};
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP +"='1' AND " + Email.DATA +" IS NOT NULL AND " + Email.DATA +" != \"\" " ;
//showing only visible contacts
String[] selectionArgs = null;
return new CursorLoader(this, ContactsContract.CommonDataKinds.Email.CONTENT_URI, projection, selection, selectionArgs, sortOrder);
}
Grazie Marte, avevo usato questo tipo di approccio. Stavo cercando qualche altra soluzione in cui non avrei dovuto usare la memoria. –
Ho fatto qualcosa di simile ma ho usato il cursore al posto di Elenco. – zeeshan