2010-11-27 2 views
5

Wie kann ich feststellen, wie viele Kontakte es in der Kontaktliste gibt? Ich habe die Kontaktnummer, aber eine Person kann mehr als einen Kontakt haben, und ich möchte dies berücksichtigen, um die Gesamtzahl der Kontakte in der Kontaktliste zu finden.Wie viele Kontakte in der Kontaktliste

Antwort

11

Um die Anzahl der Telefonnummern aller Kontakte

Cursor cursor = managedQuery(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); 

int count = cursor.getCount(); 

Um die Anzahl aller Telefonnummern eines bestimmten RawContactID (mit dem Kontakt-ID-Wert in rawContactId) zu finden zu finden.

Die Anzahl der Kontakte, die in ContactsListActivity angezeigt werden, kann durch folgende Abfrage festgelegt werden.

Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 

int Anzahl = cursor.getCount();

Wenn jedoch eine Person unter mehreren Konten eingegeben wurde, wird durch die obige Abfrage nur eine einzige Instanz erstellt, da ContactsContract.Contacts alle diese Kontakte kombiniert.

Cursor cursor = managedQuery(RawContacts.CONTENT_URI, null, null, null, null); 

int Anzahl = cursor.getCount();

Die Beziehung zwischen ContactsContract.Contacts und RawContacts kann bei http://developer.android.com/resources/articles/contacts.html

Hope this löst Ihre Zweifel herausgefunden werden!

+0

sorry aber es dosent work.it gibt mir das auch welche dosent kontaktnummer haben, die nur email ids haben. können wir die Gesamtzahl der Telefonnummern haben, die in der Kontaktliste gespeichert sind? – nimi

+0

Ya dieser Code wird alle Kontakte zurückgeben. Ich bin nicht in der Lage, die genaue Anforderung zu erhalten. Ich habe die folgende Frage beantwortet: "Wie kann ich feststellen, wie viele Kontakte es in der Kontaktliste gibt?" Müssen Sie die Gesamtzahl der Telefonnummern aller Kontakte finden? In diesem Fall bearbeite ich meine Antwort. –

+0

Vielen Dank Herr ... es hat funktioniert – nimi

0

eine wirklich alte Thread, aber wenn Sie Kontakte mit Telefonnummern zählen möchten, können Sie diese verwenden:

Cursor cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.Contacts.HAS_PHONE_NUMBER, null, null); 
int count = cursor.getCount(); 

Natürlich managedQuery ist veraltet, aber das in einer Bindung helfen kann :)