Исключение нулевого указателя в редактируемом тексте, относящемся к ContactsContract.Поиск телефона.DISPLAY_NAME

#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 сообщает мне, что «НОМЕР» не существует в столбцах.