从一个联系人问题

时间:2016-08-17 10:26:51

标签: android contactscontract

我知道这是一个常见的问题,因为我找到了许多答案,但我仍有一个关于电话号码检索的问题。

我希望从PICK_CONTACT活动中选择一个联系人中的所有号码。

这是来自onActivityResult()块的代码

 @Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
    super.onActivityResult(reqCode, resultCode, data);

    switch (reqCode) {
        case (PICK_CONTACT) :
            if (resultCode == Activity.RESULT_OK) {

                ArrayList<String> allContacts = new ArrayList<String>();

                Uri contactData = data.getData();
                Cursor c =  getContentResolver().query(contactData, null, null, null, null);
                while (c.moveToNext()) {

                    String contact_id = c.getString(c.getColumnIndex( _ID ));
                    String hasPhone =c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));

                    if (hasPhone.equalsIgnoreCase("1")) {
                        Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { contact_id }, null);
                        while (phones.moveToNext())
                        {
                            String contactNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                            allContacts.add(contactNumber);

                            break;
                        }
                        phones.close();

                    }
                    String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
                    TXT_EmergencyContactNameProfile.setText(name);
                }

            }
            break;
    }
}

我期望循环而(phones.moveToNext())可以获得所有不同的数字......但是没有

非常感谢您提前;)

1 个答案:

答案 0 :(得分:1)

尝试删除&#34; break;&#34;在while循环中。