2012-03-31 20 views
6

Tôi đang phát triển ứng dụng theo dõi gps trong Android. Tôi đang thực hiện với hiển thị bản đồ n thứ. Bây giờ tôi muốn thực hiện một nút trên đầu trang mà khi nhấp vào sẽ hiển thị các địa chỉ liên lạc, Sau đó, khi tôi chọn liên lạc nó sẽ cho tôi biết vị trí của mình. Hãy giúp tôi với điều này. Cảm ơn bạn.làm cách nào để mở danh sách liên hệ khi tôi nhấp vào nút được xác định trong main.xml

+0

Khá chắc chắn đây là cùng một câu hỏi: http://stackoverflow.com/questions/4992564/open-device-contacts-list-at-button-click-event – NotACleverMan

+0

nhờ .. nhưng mà làm tôi xác định mã đó. –

+0

http://stackoverflow.com/questions/9766263/getting-contact-number-using-content-provider-in-android/9883740#9883740 kiểm tra điều này sẽ giúp bạn –

Trả lời

16

Bạn có thể thiết lập một tổ chức sự kiện trên nút nhấp chuột bằng cách thiết lập một OnClickListener vào nút với đoạn mã sau, và sử dụng ý định gọi hoạt động ContactPicker:

button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent= new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI); 

     startActivityForResult(intent, PICK_CONTACT); 

      } 
     }); 

và trong onActivityResult() quá trình uri xúc để tải chi tiết về tiếp xúc.

@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) { 
     Uri contactData = data.getData(); 
     Cursor c = managedQuery(contactData, null, null, null, null); 
     if (c.moveToFirst()) { 
      String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
      // TODO Fetch other Contact details as you want to use 

     } 
     } 
     break; 
    } 
} 
11

Bạn nên sử dụng startActivityForResult

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
startActivityForResult(intent, 1); 

Xem "get contact info from android contact picker" để biết thêm thông tin.

+0

nơi nào tôi xác định mã này ... –

+1

+1 để sử dụng 'ContactsContract.Contacts.CONTENT_URI' vì' Contacts.CONTENT_URI' không được chấp nhận. – Darcy

0

thử mã này

Intent intent = new Intent(Intent.ACTION_DEFAULT, ContactsContract.Contacts.CONTENT_URI); 
startActivityForResult(intent, 1); 

Sử dụng ACTION_DEFAULT thay vì ACTION_PICK.

Chúc may mắn.