|
0 / 0 / 0
Регистрация: 25.12.2013
Сообщений: 42
|
||||||||||||||||
FindViewByID возвращает Null23.03.2014, 17:57. Показов 9555. Ответов 7
Метки нет (Все метки)
День добрый.
Я в разработке андроида новичек, и застрял можно сказать в самом начале. Имеется проект типа hello world Один единственный activity с одной единственной кнопкой. Пытаюсь добавить этой кнопке onTouchListener Для этого надо бы привязаться к кнопке по ID
Пошаговым дебагом выяснил, что Button_1 = (Button)findViewById(R.id.button1); возвращает null Вроде во всех примерах hello world описывают нахождения контрола именно так. Есть предположение что когда программа находится в onCreate, кнопка еще не создана. Отсюда и null Но тогда вопрос, на каком этапе к ней подключаться? Еще одно размышление в слух: В проекте по умолчанию также создан класс
В общем буду рад если подскажете что нибудь дельное. А то обидно даже. Вроде ничего особенного, всего-то подключиться к кнопке, и вот не получается. Убил на это целый день. В сети тоже искал все что с этим связанно. Обычно описывают случаи, когда просто кто то забывает
0
|
||||||||||||||||
| 23.03.2014, 17:57 | |
|
Ответы с готовыми решениями:
7
FindViewByID возвращает Null производного класса View FindViewById() возращает null RelativeLayout findViewById return null |
|
|
||||||
| 23.03.2014, 18:41 | ||||||
|
Yevgenius,
0
|
||||||
|
0 / 0 / 0
Регистрация: 25.12.2013
Сообщений: 42
|
|
| 23.03.2014, 19:04 [ТС] | |
|
YuraAAA, Не помогает..
Мало того, комп перестал распознавать что телефон подключен через USB. Самому телефону рестарт делал и Developer Mode включал/выключал.. Не работает. Но заряжается. Наверно надо комп рестартовать. Может решит это дело. Сейчас рестартовать не могу т.к на работе. Так что пока устраиваю дебаг через виртуальный девайс
0
|
|
|
0 / 0 / 0
Регистрация: 25.12.2013
Сообщений: 42
|
|||||||||||
| 24.03.2014, 16:48 [ТС] | |||||||||||
|
YuraAAA, Да, содержит.
Проверял даже в R файле. все прописано. Ну в принципе и должно быть прописано, т.к это просто новый проект по базовому темплейту, плюс одна кнопка, которая добавлена через визуальный редактор. То-есть полный автомат. Нигде вручную ничего не менял. Добавлено через 7 минут YuraAAA, Так, вроде нашел где собака зарыта. Сейчас перепроверил, в общем есть 2 xml-а. 1 - activity_main 2 - fragment_main Потому и 2 класса. Притом именно fragment_main.xml содержит в себе и базовый layout и кнопку в нем. Но в MainActivity.java этот fragment_main представлен через класс
В общем в туториалах и уроках для чайников и hello world-ах такого построения я не видел. Наверное что-то изменилось в более поздних версиях. Зачем этот PlaceholderFragment нужен и с чем его едят представляю чисто интуитивно, что он и содержит саму форму, обернутую в общий класс активитй. Но смысл? Добавлено через 30 минут Нет, все равно не работает. Уже приписал все в этот PlaceholderFragment. При этом пришлось Button объявить как static (не знаю хорошо это или плохо) Компиляция прошла. При запуске опять на том-же месте null и все тут.. Ну люди же как-то пишут hello world + кнопка ![]() не может быть все так запутанно с самого начала?! Может у кого есть пример кода, чтоб просто кнопка и подписка на ее onTouch? (на onClick подписаться получилось через xml без установки listener-а, а вот на остальные события видно listener-ы нужно вписывать через java) Добавлено через 19 часов 28 минут Наконец-то разобрался. Если кому интересно, делюсь решением проблемы. Итак, MainActivity Содержит в себе некий PlaceholderFragment, который имеет собственный XML, в котором и сидят все компоненты (кнопки, и т.д..) Я создал переменную Button Button_1; в классе PlaceholderFragment, и затем в методе onCreateView смог найти его по ID и подключить к нему все что нужно было. Еще, пришлось поставить минимальный API - 11. Иначе, предыдущие версии API не поддерживают класс Fragment вот код:
0
|
|||||||||||
|
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
|
|||
| 24.03.2014, 19:31 | |||
|
findviewById из активити можно сделать нужного элемента, но только если он есть в xml разметке, которую мы делает setContentView (разметка фрагментов тоже будет доступна из активити, но только после того как он приаттачится к ней). очень плохо
0
|
|||
|
0 / 0 / 0
Регистрация: 25.12.2013
Сообщений: 42
|
|
| 24.03.2014, 19:34 [ТС] | |
|
NiRamz,
То что плохо, что кнопка static - догадывался. Наверное ее потом нельзя будет менять. Но в конце концов получилось и без атрибута static. А вот про библиотеки support надо будет почитать что это такое и с чем его едят. Спасибо за комментарий
0
|
|
|
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
|
||
| 24.03.2014, 19:45 | ||
|
0
|
||
| 24.03.2014, 19:45 | |
|
Помогаю со студенческими работами здесь
8
OnPostExecute возвращает null Геокодирование. getFromLocationName() возвращает null Тестирование, Активити возвращает null LruCache метод put возвращает null
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|