Как работает эта версия findViewById ()?

Вы должны удалить файл appname.dll из выходной папки. Отладка и удаление папок. Перестроить и скопировать в файл регенерированной DLL-файл.

3
задан Ellen Spertus 26 February 2019 в 21:32
поделиться

1 ответ

Это не может быть выведено. Он использует приведение - return (T). Вызывающая сторона отвечает за то, чтобы тип T соответствовал типу отображаемого вида. Если они поймут это неправильно, операция завершится неудачей с ClassCastException.

Тип может быть указан явно, т.е.

this.<TextView>findViewById(R.id.someTextView)

(извините за мой синтаксис, если я ошибся - я в основном имею дело с Kotlin)

или он может быть выведен из пункта назначения:

TextView foundView = findViewById(R.id.someTextView)

, но в любом случае ответственность лежит на звонящем.

Инструментарий Android может выполнять дальнейшую работу по перекрестной ссылке на компоновку XML с кодом и создавать предупреждения или сбои в вашей IDE, но это уровень времени компиляции поверх того, что Java выполняет во время выполнения.

Это не имеет ничего общего с аннотацией @IdRes, которая должна утверждать - снова во время компиляции - что параметр id является ссылкой на идентификатор некоторой сущности на основе XML, а не просто любое целое число значение.

0
ответ дан Rob Pridham 26 February 2019 в 21:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: