2015-04-22 2 views
4

Я новичок в программировании на андроид. У меня есть путаница между View.findViewById() и Activity.findViewById(), когда мы должны называть эти методы и в которых класс findViewById() находится в классе View или Activity.В чем разница между View.findViewById() и Activity.findViewById()?

Любая помощь будет оценена по достоинству.

ответ

9

В версии просмотра просматривается вид, на который вы его называете, и все его подвид. В первом действии выполняется поиск в представлении верхнего уровня, заданном в setContentView и во всех его областях. Эта операция эквивалентна вызову View.findViewById в contentView активности.

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

+0

это правда только для классов, которые «расширяют ViewGroup'. Для классов 'extend View', он возвращает' this', только если идентификаторы соответствуют – Blackbelt

+3

. View не может иметь subview, если он не спускается из ViewGroup. Так что это верно для обоих. –

0

Activity.findViewById() - метод удобства, который вызывает объект View.findViewById() за сценой. У объектов или классов пользовательского вида нет таких методов удобства. Поэтому в этом случае мы используем прямой вызов View.findViewById() ,

Смежные вопросы