我如何打开联系人,当我点击在main.xml中定义的按钮

问题描述:

我正在开发一个android的gps跟踪应用程序。我完成了显示地图的东西。现在我想在顶部制作一个按钮,当点击它时会显示联系人,然后当我选择联系人时,它应该向我显示他或她的位置。 请帮我这个。 谢谢。我如何打开联系人,当我点击在main.xml中定义的按钮

+0

很肯定这是同一个问题: http://*.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://*.com/questions/9766263/getting-contact-number-using-content-provider-in-android/9883740#9883740检查这将帮助你 – 2012-03-31 12:42:46

您可以与下面的代码键在设置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; 
    } 
} 

您应该使用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

试试这个代码

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

使用ACTION_DEFAULT而不是ACTION_PICK

祝你好运。