Android TextView и исключение нулевого указателя - PullRequest
6 голосов
/ 31 января 2011

Почему

TextView test = (TextView) findViewById(R.id.testTextView);
test.getText();

генерирует исключение нулевого указателя?Идентификатор правильный, testTextView правильно объявлен в моем файле макета XML.

Ответы [ 5 ]

26 голосов
/ 31 января 2011

Единственная причина, по которой findViewById возвращает нулевое значение, если вы передаете действительный идентификатор, заключается в том, что вы либо задаете неправильное представление контента (с помощью setContentView), либо вообще не устанавливаете представление контента.

2 голосов
/ 02 февраля 2016

Я думаю, вы могли написать setContentView (..) после определения TextView.Отмените их, и это должно работать.

Изменить:

TextView test = (TextView) findViewById(R.id.testTextView);
.
.
setContetView(..)

На:

setContetView(..)
.
.
TextView test = (TextView) findViewById(R.id.testTextView);
2 голосов
/ 13 мая 2012

Вы уверены, что TextView установлен на правильный XML?Например, если вы создаете диалог, который загружает пользовательский XML, чтобы получить элемент из этого XML, вы должны упомянуть его в dialog.findViewById(R.id.testTextView);

Как сказал Фальмарри, представление должно быть раздутым.Я понимаю, что вы решили это, создав новый проект, но все же подумали упомянуть об этом для будущих пользователей.

2 голосов
/ 31 января 2011

Вы, вероятно, не звонили setContentView. Вы можете использовать только findViewById, чтобы получить элементы представлений, которые уже были раздуты.

Вы также можете использовать раскладку раскладки для надувания вида, но это, вероятно, не то, что вы хотите.

0 голосов
/ 27 февраля 2017

Также может быть, что вы определили активность в двух файлах.Например, layout и layout-v21 и некоторая информация, например id, отсутствует на одном из них.Так что проверьте все макеты деятельности

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...