从联系人列表中选择联系人号码并将其放入 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();
}
}
}
我有一个 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();
}
}
}