Mehul Rastogi Mehul Rastogi - 2 months ago 14
Android Question

how do i open contacts when i click a button defined in main.xml

I am developing a gps tracking app in android. I am done with displaying the map n stuff. Now I want to make a button on top which when clicked would display the contacts, Then when I select the contact it should show me his or her location.
Please help me with this.
Thank you.

Answer Source

You can set an Event on Button click by setting an OnClickListener on the Button with the following code, and use Intent to call ContactPicker activity:

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

        startActivityForResult(intent, PICK_CONTACT);

            }
        });

and in onActivityResult() process the contact uri to load details of contact.

@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;
  }
}