В моем эмуляторе настроено 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());