#android #nullpointerexception #contactscontract
#Android #исключение nullpointerexception #contactscontract
Вопрос:
Хорошо, я снова пытаюсь получить некоторую помощь с моими контактами в этом приложении, которое я создаю. По сути, я пытаюсь выбрать контакт из системного списка контактов. Эта часть выполнена и работает просто отлично. — У меня возникает проблема, когда вы выбираете имя, которое должно указывать имя и номер телефона этого человека в их соответствующих текстовых представлениях в моем приложении. Logcat выдает исключение нулевого указателя, предположительно, в определенной строке моего кода. Итак, вот фрагмент, с которым я работаю:
public void onActivityResult(int reqCode, int resultCode, Intent data) {
super.onActivityResult(reqCode, resultCode, data);
switch (reqCode) {
case (1) :
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor cursor = getContentResolver().query(contactData, null, null, null, null);
cursor.moveToFirst();
String name = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.PhoneLookup.DISPLAY_NAME));
//String number = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.PhoneLookup.NUMBER));
name1.setText(name);
//num1.setText(number);
}
break;
}
}
Предположительно, проблема (NPE) находится в строке 103 моего кода, которая выглядит следующим образом:
name1.setText(name);
Я закомментировал числовую часть кода, потому что я полагаю, что если я смогу получить эту часть, следующая часть попадет в строку. Если кто-нибудь видит какие-либо проблемы с этим, не стесняйтесь сообщить мне.
Помимо этого — заранее спасибо за помощь.
Комментарии:
1. name1, очевидно, равно нулю. Где вы его инициализируете? Этого нет в опубликованном вами коде.
2. @GabeSechan Глупый я, ты прав, я посмотрел в коде, и у меня было два num1 — единственная другая проблема, с которой я сталкиваюсь, заключается в том, что число вызывает сбой, сообщая мне, что «ЧИСЛО» не выводится из столбца — Есть идеи?
Ответ №1:
вероятно, вы не инициализировали name1, как упоминал @Gabe (при создании или при возобновлении вы должны указывать name1 = (TextView)findViewById(R.id .[yourTextViewID идет сюда])
если это не так, вы проверили логирование ‘name’, чтобы увидеть, не равно ли оно null?
Комментарии:
1. Вы оба правы — спасибо, у меня сейчас есть только одна проблема, и это то, что logcat сообщает мне, что «НОМЕР» не существует в столбцах.