Открыть список контактов устройства при нажатии кнопки - PullRequest
3 голосов
/ 14 февраля 2011

Как открыть список контактов устройства Android при нажатии кнопки.

Ответы [ 4 ]

9 голосов
/ 14 февраля 2011

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

    yourButton.setOnClickListener(new YouButtonEvent());


    class YouButtonEventimplements OnClickListener{

    @Override
    public void onClick(View v) {

        Intent it= new Intent(Intent.ACTION_PICK,  Contacts.CONTENT_URI);

        startActivityForResult(it, PICK_CONTACT);

    }

}
4 голосов
/ 15 октября 2013

Объявить некоторые переменные.Создайте метод и обработайте события.

private static final int CONTACT_PICKER_RESULT = 1001;
private static final String DEBUG_TAG = "Contact List";
private static final int RESULT_OK = -1;

// a method to open your contact list
private void openContactList() {

    Intent it = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
    startActivityForResult(it, CONTACT_PICKER_RESULT);

}

// handle after selecting a contact from the list
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
        switch (requestCode) {
        case CONTACT_PICKER_RESULT:
            // handle contact results
            Log.w(DEBUG_TAG, "Warning: activity result is ok!");
            break;
        }
    } else {
        // gracefully handle failure
        Log.w(DEBUG_TAG, "Warning: activity result not ok");
    }
}
3 голосов
/ 16 февраля 2012

Вы можете использовать этот исходный код в качестве ссылки:

import android.app.Activity; 
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class Test1Activity extends Activity  {

    private static final int PICK_CONTACT_REQUEST = 1;

    private static final int PICK_CONTACT = 0;

    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button pickContact = (Button) findViewById(R.id.button1);

        pickContact.setOnClickListener(new OnClickListener() 
        {
            public void onClick(View v) {

                Intent i = new Intent(Intent.ACTION_INSERT_OR_EDIT);
                i.setType(ContactsContract.Contacts.CONTENT_ITEM_TYPE);   

                startActivity(i);
            }
        });

    }
}
1 голос
/ 23 января 2015

Если вы хотите выбрать контакт с вашего устройства, используйте этот код.

button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           openContect();
            dialog.dismiss();
        }

и openContact() is:

 private void openContect() {
    Intent intent = new Intent(Intent.ACTION_PICK);
    intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivityForResult(intent, REQUEST_SELECT_CONTACT);
    }
}

и в вашем onActivityResult() используйте это:

if (requestCode==REQUEST_SELECT_CONTACT && resultCode == RESULT_OK && null != data){
        Uri contactUri = data.getData();
       //do what you want...
    }
...