2014-09-22 2 views
0

После выбора одного контакта из моего списка контактов он не получает только один контакт, но все они вместо этого.Получите только один контакт из списка контактов в андроид-приложении

Вот что я делаю, чтобы получить номер телефона:

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

Я думаю, что Youre выбирая все номера вместо одного одного:

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

Это будет получать все числа от этого только идентификатор контакта, попробуйте

+0

Хм ... я пытался, но он дал мне 0 результатов .... –

+0

Некоторые контакты могут поступать без телефонных номеров, вы можете попробовать с другим. – Eefret

Смежные вопросы