2014-11-09 8 views
0

Хорошо, поэтому книга, которую я собираюсь, хочет, чтобы я позвонил конкретному человеку.Как получить номер телефона от определенного контакта в Android?

Я могу получить контакт просто отлично, это целый «получение идентификатора контакта, чтобы найти бит номера телефона», с которым у меня возникают проблемы.

Приложение разбивается каждый раз, когда я выбираю контакт.

Я полагаю, что я не уверен, как правильно перейти к идентификатору контакта.

Я довольно новичок в Android, и теперь я просто полностью теряюсь, я не могу найти здесь решение, которое мне помогает.

Соответствующий код:

}else if(requestCode == REQUEST_CONTACT) { 
     Uri contactsURI = data.getData(); 

     String[] queryFields = new String[]{ 
       ContactsContract.Contacts.DISPLAY_NAME 
     }; 


     //Perform your query - the contactURI is like a "where" 
     //clause here 
     Cursor c = getActivity().getContentResolver().query(contactsURI, queryFields, null, null, null); 


     //Double-check that you actually got results 
     if (c.getCount() == 0) { 
      c.close(); 
      return; 
     } 
     contactID = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID)); 

     //Pull out the first column of the first row of data 
     //that is your suspects name 
     c.moveToFirst(); 

     String suspect = c.getString(0); 


     mCrime.setmSuspect(suspect); 
     mSuspectButton.setText(suspect); 
     c.close(); 

    } 



} 

Я сбой из-за этой части кода выше:

contactID = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID)); 
+0

Какова ошибка в logcat –

+0

В нем указатель Cursor out of bounds. – MrTimotheos

+0

см. Мой ответ ниже, проверьте, работает ли он. –

ответ

0

Вы должны сначала вызов

c.moveToFirst(); 

Тогда

contactID = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID)) 
Смежные вопросы