从Android应用中的联系人列表中只获取一个联系人

时间:2014-09-22 16:45:22

标签: android

从我的联系人列表中选择一个联系人后,它不会只收到一个联系人,而是全部联系人。

以下是我为获取电话号码所做的工作:

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个联系人。我怎样才能选择一个?

1 个答案:

答案 0 :(得分:0)

我认为你选的是所有数字而不是一个数字:

Cursor phone = cr.query(Phone.CONTENT_URI,null,ContactsContract.Contacts._ID+" = ?" ,new String[]{id},null);

这将从该联系人ID中获取所有号码,尝试