2012-03-31 63 views
6

我正在開發一個android的gps跟蹤應用程序。我完成了顯示地圖的東西。現在我想在頂部製作一個按鈕,當點擊它時會顯示聯繫人,然後當我選擇聯繫人時,它應該向我顯示他或她的位置。 請幫我這個。 謝謝。我如何打開聯繫人,當我點擊在main.xml中定義的按鈕

+0

很肯定這是同一個問題: http://stackoverflow.com/questions/4992564/open-device-contacts-list-at-button-click-event – NotACleverMan 2012-03-31 12:27:58

+0

感謝..但我在哪裏定義該代碼。 – 2012-03-31 12:35:17

+0

http://stackoverflow.com/questions/9766263/getting-contact-number-using-content-provider-in-android/9883740#9883740檢查這將幫助你 – 2012-03-31 12:42:46

回答

16

您可以與下面的代碼鍵在設置OnClickListener設置按鈕點擊事件,並使用意圖調用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); 

      } 
     }); 

onActivityResult()過程中接觸URI加載細節聯繫。

@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

您應該使用startActivityForResult

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

更多信息請參見"get contact info from android contact picker"

+0

我在哪裏定義此代碼... – 2012-03-31 12:38:36

+1

+1使用'ContactsContract.Contacts.CONTENT_URI'是因爲'Contacts.CONTENT_URI'已被棄用。 – Darcy 2013-04-08 01:51:05

0

試試這個代碼

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

使用ACTION_DEFAULT而不是ACTION_PICK

祝你好運。

相關問題