2011-10-21 21 views
9

Tôi đang sử dụng mã này để cho phép người dùng chọn một số liên lạc:Android: Làm thế nào để chọn nhiều danh bạ

Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, Phone.CONTENT_URI); 
startActivityForResult(contactPickerIntent, 1001); 

nhưng những gì tôi muốn làm là để cho hime chọn nhiều địa chỉ liên lạc (với hộp kiểm). Tôi có thể làm như thế nào?

+0

Có thể điều này sẽ giúp: https://github.com/1gravity/Android-ContactPicker (Tôi là tác giả) –

Trả lời

14

Bạn sẽ không thể làm điều đó với tùy chọn ý định ACTION_PICK. Để thực hiện điều này, bạn sẽ cần sử dụng một ListView tùy chỉnh với các liên hệ được tạo từ truy vấn đến nhà cung cấp nội dung liên hệ.

Nếu bạn muốn sử dụng mục đích Intent.ACTION_PICK, bạn cần phải yêu cầu người dùng chọn một lần.

UPDATE:

Có một số cách để làm điều này với một phong tục ListView. Cách cũ (tương thích với hầu hết các điện thoại) là một chút dài để giải thích, nhưng may mắn có một hướng dẫn tốt here mô tả chính xác những gì bạn đang tìm kiếm (danh sách liên lạc có hộp kiểm trong ListView tùy chỉnh).

Với API 5 trở lên, có một lớp học ContactsContract có thể giúp bạn nhận danh sách địa chỉ liên hệ. Ví dụ về cách sử dụng mã này, hãy xem ứng dụng mẫu ContactManager của android, cụ thể là lớp ContactManager và phương thức populateContactList().

API cho lớp ContactsContract cũng là here.

+0

Bạn có thể thêm mã để thực hiện việc này không? (bình chọn +1 cho lời giải thích) – Belgi

+0

@Belgi, tôi đã cập nhật câu trả lời của mình với một số tài nguyên để giúp bạn bắt đầu. Cá nhân, tôi thích sử dụng phương thức truy vấn Danh bạ (cách đầu tiên như được mô tả trong hướng dẫn được liên kết). –

+4

Liên kết blog được đề xuất của bạn "http://vikasdp.wordpress.com/2011/02/06/custom-android-listview-to-read-phone-contacts/" bị hỏng ngay bây giờ, vui lòng thay thế bằng bất kỳ ví dụ thích hợp nào khác. – MKJParekh

Các vấn đề liên quan