как открыть контакты, когда я нажимаю кнопку, определенную в main.xml

Я разрабатываю приложение для отслеживания GPS в Android. Я закончил с отображением карты и материалов. Теперь я хочу сделать кнопку сверху, при нажатии на которую будут отображаться контакты. Затем, когда я выберу контакт, он должен показать мне его или ее местоположение. Пожалуйста, помогите мне с этим. Спасибо.


person Mehul Rastogi    schedule 31.03.2012    source источник
comment
Совершенно уверен, что это тот же вопрос: stackoverflow.com/questions/4992564/   -  person NotACleverMan    schedule 31.03.2012
comment
спасибо .. но где мне определить этот код.   -  person Mehul Rastogi    schedule 31.03.2012
comment
stackoverflow.com/questions/9766263/ проверьте, что это поможет вам   -  person Avi Dhiman    schedule 31.03.2012


Ответы (3)


Вы можете установить событие при нажатии кнопки, установив OnClickListener на кнопке с помощью следующего кода, и использовать намерение для вызова действия ContactPicker:

button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                 Intent intent= new Intent(Intent.ACTION_PICK,  ContactsContract.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;
  }
}
person jeet    schedule 31.03.2012
comment
Как я могу выбрать несколько контактов? - person Bugs Happen; 15.03.2021

Вы должны использовать startActivityForResult

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

См. «получение контактной информации из средства выбора контактов Android» для получения дополнительной информации.

person Kamil Powałowski    schedule 31.03.2012
comment
+1 за использование ContactsContract.Contacts.CONTENT_URI, потому что Contacts.CONTENT_URI устарел. - person Darcy; 08.04.2013

попробуйте этот код

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

Используйте ACTION_DEFAULT вместо ACTION_PICK.

Удачи.

person A. Mesgari    schedule 19.08.2017