Nasıl tüm iletişim numarası o kişi adı android ile ilişkili almak

oy
-1

Ben onay kutusuyla çoklu Kişi seçici listesini yapmak için çalışıyorum. Zaten temas onun temas halinde en az bir telefon numarasına sahip olan Multi İletişim Seçici yarattı.

Que

Şimdi de temas ekledik ListView. Ama iletişim bu kaydedilir ilk telefon numarasını alıyor, içindeki tek irtibat numarası ile görünür ContactUygulama. Ben ekledik LinkedHashMap& Seteklemek için indexerİletişim Listesinde.

LinkedHashMapyoksa SetKoleksiyonları'ndan yinelenen değerleri kaldırıyor?

Nasıl bu temas adıyla ilişkili tüm telefon numarasını getirebilir?

Kod Parçacığı: -

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());
Oluştur 05/05/2014 saat 05:17
kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
0

Bunlar, söylemek çalışıyorum bugün itibariyle sadece geçici bir çözüm olduğunu tüm iletişim numarası ile ilişkilendirilmiş aynı ilgili kişi içeride android.provider.ContactsContract.

Ben ekledim tüm iletişim numarası ile ilişkilendirilmiş aynı ilgili kişi ile ekleyerek fasulye içine delimiter(",")kullanıyorum geri getirebilir ki Tokenizer. Ama hiçbir fikri şimdi itibarıyla, bana pek önemli, aslındasensin ANA, İŞ, GÖREV olup olmadığıdır türü temasa olduğunu bilmek.

Fix:

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 "(-/,"
    }
}
Cevap 05/06/2014 saat 04:33
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more