2012-01-27 91 views
0

是否可以從我的應用程序讀取聯繫人列表中的多個聯繫人? 我發現的是如何接收聯繫人列表,並通過列表循環。在android中閱讀聯繫人

How to read contacts on Android 2.0

但有可能從contacts.do的列表中選擇其中的幾個,我需要選擇我選擇的通訊錄創建一個單獨的佈局,並從聯繫人列表中的數據加載佈局??請幫忙。

+0

它看起來像你說的是兩個不同的東西讀取聯繫人:你說的是程序讀取來自ContactsContractProvider聯繫人?還是你在談論使用CONTACT_PICK意圖選擇聯繫人? – 2012-01-27 05:48:14

回答

0

顯然你可以從聯繫人列表中選擇你所選擇的聯繫人。但是你只需要在查詢中找到一個合適的「where」子句(即你想從列表中獲得什麼類型的聯繫人)。

是的,你需要創建單獨的佈局來顯示它們。

例如:與電話號碼

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, ContactsContract.Contacts.HAS_PHONE_NUMBER+"='true'", null, null); // gives you the list of contacts who has phone numbers 

while (cursor.moveToNext()) { 

    String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
    Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null); 
    while (phones.moveToNext()) { 
     String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));     
     } 
     phones.close(); 
} 

希望獲得接觸,我知道你的要求correctly.If不,請讓我知道!

+0

實際上它不是'where'子句。我想要的是通過複選框的幫助來選擇一些聯繫人(由新xml中的聯繫人提供)。您認爲這可以在同樣的方式??? – scooby 2012-01-27 05:08:08

+0

所以你的意思是,你正在一個屏幕上填充所有聯繫人,每個聯繫人都有一個複選框,並且你想重新選擇其中的複選框被選中? – Hiral 2012-01-27 05:17:12

+0

如果是這樣,那麼您需要將選定聯繫人的ID存儲在數組中,然後再從ContentResolver中查詢它們以將其填充到列表視圖中。 – Hiral 2012-01-27 05:24:08

-1
  1. 基本上你需要通過與他們獨特的 ID叫CONTACT_ID所有聯繫人進行迭代。

  2. 避免在循環中的遊標內使用遊標。

試試這個演示應用程序。看看如何快速將其以適當的方式機器人

Source code attached

+0

儘管這個鏈接可能回答這個問題,但最好在這裏包含答案的重要部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – 2015-09-16 07:16:50

+0

當然..我會提供一些信息 – 2015-09-16 07:31:35