2015-04-24 3 views
0

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

Я совершенно уверен, что есть какая-то ошибка в onActivityResult() метод

Код в onActivityResult() метод: -

protected void onActivityResult(int requestCode, int resultCode, 
      Intent data) { 
if (requestCode == 1) { 
if (resultCode == RESULT_OK) { 
contact=data.getData(); 
String projection[]={Phone.NUMBER}; 
Cursor c=getContentResolver().query(contact, projection, null, null, null); 
c.moveToFirst(); 
int column=c.getColumnIndex(Phone.NUMBER); 
String number=c.getString(column); 
Toast.makeText(this,"The number of selected contact is:-"+ number, Toast.LENGTH_LONG).show(); 

} 
} 

Пожалуйста, помогите мне. Я новичок в программировании на Android. Спасибо заранее.

+0

то, что сбой журнала вы получаете в LogCat? post it. Вы пытались отлаживать? – dora

ответ

0

Я думаю, что ваш onActivityResult должен быть как ниже

protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == 1) { 
     if (resultCode == RESULT_OK) { 
      Uri result = data.getData(); 
      String id = result.getLastPathSegment(); 
      String projection[] = { Phone.NUMBER }; 
      Cursor c = getContentResolver().query(Phone.CONTENT_URI, projection, 
        Phone.CONTACT_ID + "=?", new String[] { id }, null); 
      c.moveToFirst(); 
      int column = c.getColumnIndex(Phone.NUMBER); 
      String number = c.getString(column); 
      Toast.makeText(this, 
        "The number of selected contact is:-" + number, 
        Toast.LENGTH_LONG).show(); 

     } 
    } 
} 
+0

не могли бы вы рассказать мне, почему вы взяли идентификатор String и передали его в качестве аргумента (второй по последнему) в методе запроса? – Priyank

+0

и что такое использование getLastPathSegment() ??? @dora – Priyank

+0

@Priyank Uri - это место, где находится файл, и getLastPathSegment() дает идентификатор контакта, который вы выбрали через ContactPicker – dora

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