Button.findViewById vs Button = findViewById - PullRequest
0 голосов
/ 04 мая 2018

Эй, ребята, я новичок в программировании. Опробовать что-то в Android Studio (Kotlin) Я искал это, но не нашел ответа. Button

В основном я использую Button.findViewById<Button>(R.id.Button), но иногда это дает мне ошибку, и я должен написать это как Button = findViewById(R.id.Button) as Button

Может кто-нибудь сказать мне, где (или в чем) разница?

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

с kotlin: вы не должны использовать findViewById. Вы можете использовать прямой идентификатор, например: btnSave.text="abc" Если код показывает ошибку, вы выбираете [btnSave] и нажимаете [Alt + Enter], чтобы импортировать lib.

0 голосов
/ 04 мая 2018

findViewById выполняет поиск по представлению, у которого есть идентификатор, который вы даете в представлении, с которым вызываете этот метод.

Поэтому, когда вы делаете Button.findViewById(R.id.btn), это никогда не должно работать, потому что Button - это класс, а не экземпляр представления.

Когда вы делаете myButton.findViewById(R.id.btn), он просматривает myButton, который является экземпляром представления, если есть представление с btn, имеющим идентификатор. Если он есть, верните его, иначе он возвращает ноль.

Когда вы делаете findViewById(R.id.btn) Вы вызываете этот метод непосредственно из пользовательского кода представления. Часто это внутри деятельности. Затем он ищет в макете этого действия, если есть View, имеющий btn, имеет ID. Если он есть, он возвращает его, в противном случае он возвращает ноль.

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