Ich versuche, E-Mail-IDs von verwendet Kontakte zu erhalten. Dafür benutze ich den Cursor Loader. Es gibt ein Problem Ich bekomme auch doppelte E-Mail-IDs. So entfernen Sie die E-Mail-Duplizierung Sollte ich die rohe Abfrage "SELECT DISTINCT" anstelle von CursorLoader verwenden oder gibt es eine andere Lösung?Die Verwendung von CursorLoader, um E-Mails zu erhalten, führt zur Duplizierung von E-Mails
@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);
}
Dank mars, ich hatte diese Art von Ansatz verwendet. War auf der Suche nach einer anderen Lösung, in der ich keine Erinnerung verwenden müsste. –
Ich habe etwas ähnliches getan, aber Cursor statt List verwendet. – zeeshan