setContentView () инициализируется, не вызывается - PullRequest
0 голосов
/ 20 февраля 2019

Я следую руководству по связыванию данных, и оно заменяет:

setContentView(R.layout.activity_main) на

binding = DataBindingUtil.setContentView(this, R.layout.activity_main)

enter image description here

Мне интересно, как установка значения binding для экземпляра с setContentView() устанавливает представление содержимого.Потому что он не звонит setContentView().

Мне также интересно, как объект ActivityMainBinding участвует в следующем назначении:

binding = DataBindingUtil.setContentView(this, R.layout.activity_main)

1 Ответ

0 голосов
/ 20 февраля 2019

Вы следили за исходным кодом?:) Когда вы звоните

DataBindingUtil.setContentView(@NonNull Activity activity, int layoutId)

, он вызывает

DataBindingUtil.setContentView(@NonNull Activity activity, int layoutId, @Nullable DataBindingComponent bindingComponent)

, этот метод внутренне вызывает

activity.setContentView(layoutId);.

Подробнее здесь

А также, если ваше представление имеет id (например, R.id.done_button), вам не нужно вызывать findViewById метод.Он должен быть доступен через объект привязки, например

binding.doneButton

...