从我的联系人列表中选择一个联系人后,它不会只收到一个联系人,而是全部联系人。
以下是我为获取电话号码所做的工作:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case CONTACT_PICKER_RESULT:
ContentResolver cr = getContentResolver();
Cursor c = cr.query(ContactsContract.Contacts.CONTENT_URI,
null, null, null, null);
if (c.moveToFirst()) {
String id = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phone = cr.query(Phone.CONTENT_URI,null,null,null,null);
while(phone.moveToNext()){
String number = phone.getString(phone.getColumnIndex(Phone.NUMBER));
int type = phone.getInt(phone.getColumnIndex(Phone.TYPE));
this.numeros.add(number);
}
}
break;
}
this.mostarToast(this.numeros.size() + " contatos adicionados.");
} else {
// gracefully handle failure
Log.w("Erro", "Erro ao adicionar contato!");
}
}
" mostrarToast"方法只是显示我已经选择了多少联系人。但不是一个,它显示像101个联系人。我怎样才能选择一个?
答案 0 :(得分:0)
我认为你选的是所有数字而不是一个数字:
Cursor phone = cr.query(Phone.CONTENT_URI,null,ContactsContract.Contacts._ID+" = ?" ,new String[]{id},null);
这将从该联系人ID中获取所有号码,尝试