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

Picking contacts number from the contact list and putting it in an EditText

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

如果用户单击该按钮,它会打开联系人以便他们可以 select 一个,现在我想将该号码导入到 EditText。有办法吗?

编辑:EditText 和按钮都属于一个 Fragment。

如果您特别需要用户选择 phone 号码,您可以请求 phone-号码选择器,而不是像您正在做的联系人选择器。

试试这个:

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

您将在 return 中获得的意图数据将针对数据 table 中的特定 phone 行:

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