从联系人列表中挑选联系人号码并将其放入EditText中

时间:2017-03-30 23:17:30

标签: android android-fragments android-intent android-contacts

我有一个EditText和一个Button,该按钮有一个OnClickListener,用startActivityForResult(new Intent("android.intent.action.PICK", android.provider.ContactsContract.Contacts.CONTENT_URI), 1)打开联系人列表。

如果用户点击按钮,它会打开联系人,以便他们可以选择一个,现在我想将该数字导入EditText。有没有办法做到这一点?

编辑:EditText和按钮都属于片段。

1 个答案:

答案 0 :(得分:3)

如果您特别需要用户选择的电话号码,您可以申请电话号码选择器,而不是像您一样的联系选择器。

试试这个:

Intent intent = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
intent.setType(CommonDataKinds.Phone.CONTENT_TYPE);
startActivityForResult(intent, 1);

您将获得的目标数据将是数据表中的特定电话行:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if ((requestCode == 1) && (resultCode == RESULT_OK)) {
        Cursor cursor = null;
        try {
            Uri uri = data.getData();
            cursor = getContentResolver().query(uri, new String[] { CommonDataKinds.Phone.NUMBER }, null, null, null);
            if (cursor != null && cursor.moveToNext()) {
                String phone = cursor.getString(0);
                // Do something with phone
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}