-4
A
回答
-1
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_usercontact);
class MainActivity extends Activity {
private final int REQUEST_CODE=99;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.content_usercontact);
EditText editText = (EditText)findViewById(R.id.editTextcontacts1);
EditText editText1 = (EditText)findViewById(R.id.editTextcontacts2);
EditText editText2 = (EditText)findViewById(R.id.editTextcontacts3);
editText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, REQUEST_CODE);
}
});
editText1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, REQUEST_CODE);
}
});
editText2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, REQUEST_CODE);
}
});
}
@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (REQUEST_CODE):
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = getContentResolver().query(contactData, null, null, null, null);
if (c.moveToFirst()) {
String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
String hasNumber = c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
String num = "";
if (Integer.valueOf(hasNumber) == 1) {
Cursor numbers = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);
while (numbers.moveToNext()) {
num = numbers.getString(numbers.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Toast.makeText(MainActivity.this, "Number=" + num, Toast.LENGTH_LONG).show();
}
}
}
break;
}
}
}
}
}
}
+0
这是作为答案发布的,但它不会尝试回答问题。它应该可能是编辑,评论,另一个问题,或者完全删除。 –
2
的onClick代码
Intent pickContact = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
pickContact.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE)
startActivityForResult(pickContact, 1);
onActivityResult代码
Uri contactData = data.getData();
Cursor c = getContentResolver().query(contactData, null, null, null, null);
if (c.moveToFirst()) {
int phoneIndex = getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
String num = c.getString(phoneIndex);
Toast.makeText(MainActivity.this, "Number=" + num, Toast.LENGTH_LONG).show();
}
1
要获取联系人姓名,号码以及电子邮件也从你的联系人列表中选择联系人,你只需要简单地添加这个代码。
private Button btn;
private String TAG = "Contacts";
private static final int RESULT_PICK_CONTACT = 1;
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
selectSingleContact();
}
});
private void selectSingleContact() {
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(contactPickerIntent, RESULT_PICK_CONTACT);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// check whether the result is ok
if (resultCode == RESULT_OK) {
// Check for the request code, we might be usign multiple startActivityForResult
switch (requestCode) {
case RESULT_PICK_CONTACT:
contactPicked(data);
break;
}
} else {
Log.e("ContactFragment", "Failed to pick contact");
}
}
private void contactPicked(Intent data) {
Uri uri = data.getData();
Log.i(TAG, "contactPicked() uri " + uri.toString());
Cursor cursor;
ContentResolver cr = getActivity().getContentResolver();
try {
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
if (null != cur && cur.getCount() > 0) {
cur.moveToFirst();
for (String column : cur.getColumnNames()) {
Log.i(TAG, "contactPicked() Contacts column " + column + " : " + cur.getString(cur.getColumnIndex(column)));
}
}
if (cur.getCount() > 0) {
//Query the content uri
cursor = getActivity().getContentResolver().query(uri, null, null, null, null);
if (null != cursor && cursor.getCount() > 0) {
cursor.moveToFirst();
for (String column : cursor.getColumnNames()) {
Log.i(TAG, "contactPicked() uri column " + column + " : " + cursor.getString(cursor.getColumnIndex(column)));
}
}
cursor.moveToFirst();
id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Log.i(TAG, "contactPicked() uri id " + id);
String contact_id = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID));
Log.i(TAG, "contactPicked() uri contact id " + contact_id);
// column index of the contact name
name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
// column index of the phone number
phoneNo = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
//get Email id of selected contact....
Log.e("ContactsFragment", "::>> " + id + name + phoneNo);
Cursor cur1 = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", new String[]{contact_id}, null);
if (null != cur1 && cur1.getCount() > 0) {
cur1.moveToFirst();
for (String column : cur1.getColumnNames()) {
Log.i(TAG, "contactPicked() Email column " + column + " : " + cur1.getString(cur1.getColumnIndex(column)));
email = cur1.getString(cur1.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
}
//HERE YOU GET name, phoneno & email of selected contact from contactlist.....
Log.e("setcontactDetails","::>>" + name+"\nPhoneno:" + phoneNo+"\nEmail: " + email);
} else {
Log.e("setcontactDetails","::>>" + name+"\nPhoneno:" + phoneNo+"\nEmail: " + email);
}
}
} catch (IndexOutOfBoundsException e) {
e.printStackTrace();
}
}
而且将权限添加到您的AndroidManifest.xml 它为我,希望它为你的作品也会。
+0
这是非常低效的。 moveToFirst返回一个布尔值,如果为null,则返回false。没有必要保持null检查游标并发出无关的查询。 – LoungeKatt
相关问题
- 1. 如何从联系人列表中删除联系人号码?
- 2. 如何从android中的联系人获取联系人号码?
- 3. 从联系人列表中选择联系人时得到0
- 4. 来自联系人列表的Android联系人号码
- 5. 打开联系人列表以选择联系人或添加新联系人
- 6. Android应用:从联系人列表中检索“我”联系人
- 7. 如何从联系人列表中读取联系人姓名和号码
- 8. 联系人列表API用于从选择的联系人列表同步联系人?
- 9. 如何从BlackBerry联系人中取回联系人列表?
- 10. J2ME:如何从联系人列表中导入联系人?
- 11. 选择从联系人列表中的联系人崩溃的应用程序
- 12. 如何获取Android联系人列表上联系人的ID?
- 13. 选择联系人
- 14. 如何从联系人编号中读取联系人姓名?
- 15. 获取联系人号码,因为它是从联系人列表
- 16. 如何将联系人号码更改为联系人姓名?
- 17. Android联系人选择 - 仅限带数字的联系人?
- 18. 在iPhone上不使用联系人选择器的联系人列表
- 19. 如何在找到联系人后选择联系人? Ionic 2
- 20. 联系人选择器显示号码,联系人姓名和可能的联系人图像?
- 21. 从联系人应用中选择一个联系人;但只列出与电子邮件的联系人
- 22. 搜索联系人并从android手机联系人中获取联系人号码
- 23. 如何从电话号码中仅从谷歌联系人(不是Facebook等)中选择联系人?
- 24. 更新联系人中的联系人号码,iphone
- 25. android联系人列表UI
- 26. Android联系人列表
- 27. Android联系人列表
- 28. 导入联系人只导入联系人列表中的第一个联系人号码
- 29. 多个联系人选择器列表
- 30. 代码与打印联系人列表,联系人数量,联系人数量,联系人的平均年龄和联系人的数量的选项集
你试过了什么?> – Sree
看看我的截图 –
你的代码在哪里?一个截图是不够的。 –