Я установил 2 тестовых контакта в своем эмуляторе.
Я запускаю следующий запрос, он должен выбрать их обоих, заполнить мой объект домена и добавить в список. Следовательно, на выходе внизу должно быть 2, а на самом деле 5, почему так? (cursor.getCount() равно 5 вместо 2)
Я прошел через каждую итерацию цикла while, и он несколько раз извлекает один и тот же контакт, но с разными значениями для POSTCODE
, такими как номер телефона.
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.Data.CONTENT_URI,
null, null, null, null);
List<MeCercanaContact> contacts = new ArrayList<MeCercanaContact>();
if (cursor.getCount() > 0)
{
while (cursor.moveToNext())
{
MyContact myContact = new MyContact();
String givenName = cursor.getString(cursor.getColumnIndex(
ContactsContract.Contacts.DISPLAY_NAME));
String postcode = cursor.getString(cursor.getColumnIndex(
ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
myContact.setFirstName(givenName);
myContact.setLastName(postcode);
contacts.add(myContact);
}
}
System.out.println(contacts.size());