public ListAdapter getMoreContacts(String name) {
contactIdCur = null;
if (name == null || name.equals("") || name.length() == 0) {
// query
contactIdCur = getContentResolver()
.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[] {
ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME },
null, null, null, null);
}// if
else {
// condition query
contactIdCur = getContentResolver()
.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[] {
ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME },
Contacts.DISPLAY_NAME + " LIKE ? and "
+ Contacts.HAS_PHONE_NUMBER + " = 1",
new String[] { "%" + name + "%" },
Contacts.DISPLAY_NAME, null);
}
contactsData = new ArrayList<Contact>();
if (contactIdCur != null) {
while (contactIdCur.moveToNext()) {
contact = new Contact();
// get data
contact.setName(contactIdCur.getString(contactIdCur
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)));
long contactid = contactIdCur
.getLong(contactIdCur
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID));
// query numbers by ID
Cursor phoneObjectCur = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "="
+ contactid, null, null);
phones = new ArrayList<Phone>();
while (phoneObjectCur.moveToNext()) {
// get number
String number = phoneObjectCur.getString(phoneObjectCur
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
//get type
int typeId = phoneObjectCur.getInt(phoneObjectCur
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
String type = typeId2String(typeId);
Phone phone = new Phone();
phone.setNumber(number);
phone.setType(type);
phones.add(phone);
}
contact.setPhones(phones);
contactsData.add(contact);
}
}
contactIdCur.close();
ContactAdapter contractAdp = new ContactAdapter(ContactActivity.this,
R.layout.contacts_list_row, contactsData);
return contractAdp;
}