-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
看看我的截圖 –
你的代碼在哪裏?一個截圖是不夠的。 –