NullPointerException: SetOnClickListener (это) — Android
При запуске моего приложения в Android Studio я получаю NullPointerException в строке 30, который выглядит следующим образом:
Что всегда работало для меня .. Я реализую View.OnClickListener и имею здесь метод переопределения:
Мой LinearLayout объявлен здесь перед setOnClickListener :
Так что происходит не так? Вот мой вывод LogCat:
3 ответа
Фрагменты работают немного иначе.
При работе с ними вы должны использовать концепцию rootview. В противном случае вы всегда будете сталкиваться с ужасным исключением «NULL POINTER».
Вот как это сделать.
Определите корневое представление при расширении каждого представления для каждого фрагмента, а затем вызовите функцию onClick.
Другой альтернативой является использование getView, которое всегда возвращает rootview. . Попробуйте вместо этого
Эта ссылка объясняет аналогичную проблему.
Однако первый способ является правильным, поскольку вы изолируете свои фрагменты друг от друга и правильно понимаете иерархию представлений. Я бы прочитал это. Поверьте, время, потраченное на чтение этого материала, окупается, а не часы, которые вы в противном случае потратите на полоумные идеи работы, чтобы заставить материал работать.
findViewById возвращает нулевое значение когда запрошенное представление не может быть найдено.
- Проверьте в соответствующем XML-файле, что представление действительно объявлено с идентификатором @id/llTheory
- стандартная передовая практика Java будет проверять отлитый предмет перед его использованием.
Источник
Исключить указатель Null на .setOnClickListener
У меня возникла проблема с прослушивателем кликов для кнопки отправки модального входа.
У меня есть разумное понимание того, что такое исключение нулевого указателя, и я тщательно искал проблему, подобную моей. Я попытался переформатировать прослушиватель кликов несколькими способами, убедиться, что у меня есть правильный идентификатор вида и т. Д.
Существует больше, очевидно, но не относящихся к теме, я думаю. Вот XML-файл для диалога с кнопкой на нем.
Любая помощь будет принята с благодарностью.
Submit является null потому что это не является частью activity_main.xml
Когда вы вызываете findViewById внутри Activity , он будет искать View внутри макета вашей активности.
Попробуйте это вместо этого:
Другое дело: вы используете
Но то, что вы хотите, вероятно,
См. Этот вопрос о различии между @id и @+id .
Android.widget.Button.setOnClickListener (android.view.View $ OnClickListener) ‘на ссылке нулевого объекта
Потому что кнопка Submit находится внутри login_modal поэтому вам нужно использовать loginDialog view для доступа к кнопке:
Попробуйте дать вашей Button в вашем main.xml более описательное имя, например:
(Используйте строчные буквы в ваших xml-файлах, по крайней мере, первую букву)
И затем в своем классе MainActivity объявите его как:
В методе onCreate (Bundle savedInstanceState) определите его как:
Также перемещайте кнопки / TextViews снаружи и размещайте их перед .setOnClickListener – это делает код более чистым.
Источник