【问题标题】:How to get all contact number associated with that contact name android如何获取与该联系人姓名关联的所有联系电话 android
【发布时间】:2014-05-05 06:17:07
【问题描述】:

我一直在尝试使用复选框制作多联系人选择器列表。我已经创建了多联系人选择器,其中联系人的联系人中至少有一个电话号码。

现在我在ListView 中添加了联系人。但是联系人中出现了单个联系人号码,它采用了保存在Contact应用程序中的第一个电话号码。我已添加 LinkedHashMapSet 以在联系人列表中添加 indexer

LinkedHashMapSet 是否正在从集合中删除重复值?

如何获取与该联系人姓名关联的所有电话号码?

代码片段:-

ContentResolver cr = getContentResolver();
    String selection = Data.HAS_PHONE_NUMBER + " > '" + ("0") + "'";
    
    Cursor cur = cr.query(Data.CONTENT_URI, new String[] { Data.CONTACT_ID, Data.MIMETYPE, Email.ADDRESS,
            Contacts.DISPLAY_NAME, Phone.NUMBER }, selection, null, Contacts.DISPLAY_NAME);

    
     Contact contact;
    if (cur.getCount() > 0) {

        while (cur.moveToNext()) {

            String id = cur.getString(cur.getColumnIndex(Data.CONTACT_ID));

            String mimeType = cur.getString(cur.getColumnIndex(Data.MIMETYPE));

            if (allContacts.containsKey(id)) {
                // update contact
                contact = allContacts.get(id);
            } else {
                contact = new Contact();
                allContacts.put(id, contact);
                // set photoUri
                contact.setContactPhotoUri(getContactPhotoUri(Long.parseLong(id)));
            }

            if (mimeType.equals(StructuredName.CONTENT_ITEM_TYPE))
                // set name
                contact.setContactName(cur.getString(cur.getColumnIndex(Contacts.DISPLAY_NAME)));

            if (mimeType.equals(Phone.CONTENT_ITEM_TYPE))
                // set phone munber
                contact.setContactNumber(cur.getString(cur.getColumnIndex(Phone.NUMBER)));
        }
    }

    cur.close();
    // get contacts from hashmap
    contacts.clear();
    contacts.addAll(allContacts.values());

【问题讨论】:

    标签: android android-contentprovider android-contacts


    【解决方案1】:

    到目前为止,这只是一个临时修复,我一直在尝试在android.provider.ContactsContract 中添加与同一联系人关联的所有联系人号码

    我已经通过附加delimiter(",") 在bean 中添加了与同一联系人 关联的所有联系人号码,我可以使用Tokenizer 取回。但不知道是 HOME、WORK、OFFICE 是哪种联系方式,目前对我来说不那么重要了。

    修复:

    if (mimeType.equals(Phone.CONTENT_ITEM_TYPE)){
    // set phone number
        if (contact.getContactNumber().toString().length() == 0) {                   
             contact.setContactNumber(cur.getString(cur.getColumnIndex(Phone.NUMBER)).replaceAll("\\D", ""));
        } else {                      
             contact.setContactNumber(contact.getContactNumber().toString().concat(", ").concat(cur.getString(cur.getColumnIndex(Phone.NUMBER)).replaceAll("\\D", "")));//One can add possible contacts "(-/,"
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-07
      • 1970-01-01
      相关资源
      最近更新 更多