英文:
do while with cursor only returning 3 values from an array
问题
String phoneNum;
int dataIdx = cursor.getColumnIndex(ContactsContract.Contacts.Entity.DATA1);
int mimeIdx = cursor.getColumnIndex(ContactsContract.Contacts.Entity.MIMETYPE);
cursor.moveToFirst();
int i = 0;
do {
i++;
phoneNum = "phone" + i ;
returnKeys.put(ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE,"name");
returnKeys.put(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE, phoneNum);
returnKeys.put(ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE, "email");
mime = cursor.getString(mimeIdx);
if(returnKeys.containsKey(mime)) {
contactData.putString((String)
returnKeys.get(mime)
cursor.getString(dataIdx));
cursor.moveToNext();
foundData = true;
}
} while (cursor.moveToNext());
cursor.close();
if(foundData) {
mContactsPromise.resolve(contactData);
return;
} else {
mContactsPromise.reject(E_CONTACT_NO_DATA, "No data found for contact");
return;
}
} catch (Exception e) {
mContactsPromise.reject(E_CONTACT_EXCEPTION, e.getMessage());
return;
}
英文:
I want to return the name and all the numbers for a single contact. for example if a contact has 4 numbers i want to return it as phone1, phone2,etc... . I have a code that opens contact list and and return only one contact. I Changed it to this but it either returns three contacts or none at all.
String phoneNum;
int dataIdx = cursor.getColumnIndex(ContactsContract.Contacts.Entity.DATA1);
int mimeIdx = cursor.getColumnIndex(ContactsContract.Contacts.Entity.MIMETYPE);
cursor.moveToFirst();
int i = 0;
do {
i++;
phoneNum = "phone" + i ;
returnKeys.put(ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE,"name");
returnKeys.put(ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE, phoneNum);
returnKeys.put(ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE, "email");
mime = cursor.getString(mimeIdx);
if(returnKeys.containsKey(mime)) {
contactData.putString((String)
returnKeys.get(mime)
cursor.getString(dataIdx));
cursor.moveToNext();
foundData = true;
}
} while (cursor.moveToNext());
cursor.close();
if(foundData) {
mContactsPromise.resolve(contactData);
return;
} else {
mContactsPromise.reject(E_CONTACT_NO_DATA, "No data found for contact");
return;
}
} catch (Exception e) {
mContactsPromise.reject(E_CONTACT_EXCEPTION, e.getMessage());
return;
}
专注分享java语言的经验与见解,让所有开发者获益!
评论