1. 程式人生 > >安卓跳轉到通訊錄,選擇聯絡人後自動返回,把獲取的資訊顯示到介面

安卓跳轉到通訊錄,選擇聯絡人後自動返回,把獲取的資訊顯示到介面

先是跳轉過去

//點選選擇通訊錄
                AlertDialog.Builder builder = new AlertDialog.Builder(act);
                builder.setTitle("提示:").setMessage("確定從通訊錄選擇聯絡人?").setCancelable(true)
                        .setPositiveButton("是", new DialogInterface.OnClickListener() {
                            @Override
public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.dismiss(); startActivityForResult(new Intent( Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI), 0
); } }).setNegativeButton("否", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.dismiss(); } }).show();

//———————————————————-
獲取返回的資料,重寫onActivityResult方法

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == Activity.RESULT_OK) {
            ContentResolver reContentResolverol = getContentResolver();
            Uri contactData = data.getData();
            @SuppressWarnings("deprecation")
            Cursor cursor = managedQuery(contactData, null, null, null, null);
            cursor.moveToFirst();
            String username = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
            String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
            Cursor phone = reContentResolverol.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                    null,
                    ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId,
                    null,
                    null);
            while (phone.moveToNext()) {
                String usernumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                KLog.e(usernumber+" ("+username+")");
                cInviteeUsername.setText(username);
                cInviteeTel.setText(usernumber);
            }

        }
    }