Привязка к просмотру Android — Нет средств получения просмотров

#java #android #android-viewbinding

Вопрос:

Я просто работаю над своим первым тестовым приложением с привязкой к просмотру.

Примеры в документах Android указывают, что если у меня есть представление с идентификатором «txt_name», представление будет доступно из созданного класса как

 binding.getTxtName()
 

Тем не менее, похоже, что участники являются общедоступными и доступны таким образом

 binding.txtName
 

Это прекрасно, но просто не мой предпочтительный стиль кодирования.

Есть ли способ изменить поведение, чтобы получатели создавались структурой привязки представлений?

Комментарии:

1. Вы уверены, что не используете привязку данных? Насколько мне известно, привязка представления генерирует геттеры, в то время как привязка данных просто генерирует поля.

2. @HenryTwist При использовании я не получаю никаких геттеров для представлений в своих классах привязки viewBinding . Тем не менее, все эти поля есть final , поэтому я могу себе представить, что Google не видел смысла добавлять для них геттеры.

3. Это странно, потому что в документации конкретно упоминаются геттеры, например, здесь: developer.android.com/topic/libraries/view-binding#activities . На самом деле я некоторое время не использовал привязку представления, мне придется дважды проверить, смогу ли я ее воспроизвести.

4. Да, getRoot существует, если ты об этом. Это потому, что он переопределяет метод в ViewBinding интерфейсе. Я предполагаю binding.getName() , что это может быть ошибка копирования-вставки, но я не могу сказать наверняка.

5. Да, я имел в виду, где там написано binding.getName().setText(viewModel.getName()); . Однако я только что протестировал его, и он генерирует только поля, так что, вероятно, это просто опечатка. Действительно, кажется странным, что они не будут следовать соглашениям Java.