Android bekommen Sie einen cursor nur mit Kontakten, die Sie einer E-Mail aufgelistet >android 2.0
ich habe den folgenden code, um die Kontakte von content provider
String[] columns = new String[] {
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts._ID,
ContactsContract.Contacts.PHOTO_ID };
Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI,
columns, null, null, null);
und ich diese benutzen, um die E-Mails für einen bestimmten Kontakt durch Ihre id:
Cursor emails = getContentResolver().query(
ContactsContract.CommonDataKinds.Email.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID
+ " = " + contact.getContactId(), null, null);
meine aktuelle Implementierung geht jeder Zeile in der der cursor und erwirbt seine E-Mails und speichert diese in einer arrayList von java-Objekten.
was ich Frage mich, ob es möglich war, zu tun, ist nur die Abfrage der Inhalte-Anbieter und Rückgabe eines cursor nur Kontakte mit den ids/Namen etc haben eine E-Mail-Adresse aufgeführt.
diese Weise hat eine lange Wartezeit für erste Kontakte in der Liste. ich bin mit dieser Liste für eine Liste der adapter. wenn ich nur die Kontakte, die eine E-Mail ich kann über cursor-adapter in meiner Liste.
Ist so etwas möglich? wie kann ich den Prozess beschleunigen?
InformationsquelleAutor der Frage DArkO | 2011-03-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
@CapDroid
Festen funktionierenden code von DArkO ' s post:
Ihren cursor haben wichtige IDs sowie Namen und E-Mail-Adressen. Die Leistung dieser code ist großartig, denn es fordert nur einige Spalten nur.
InformationsquelleAutor der Antwort Marcin
Ich dies Problem gelöst, hier ist wie Ihre getan:
UPDATE
InformationsquelleAutor der Antwort DArkO