DataBindingUtil.setContentView (this, resource) возвращает значение null

1

Я начал использовать привязку данных Android, но без успеха. Я сделал все, что было предложено в документации, но когда мне нужно установить значение метода я получить null. Я использую Android Studio 2.1.2, и я ввел gradle

dataBinding {
    enabled = true
}

в макете я делаю точно то же самое расположение, и внутри я помещаю данные тега:

<data>
    <variable name="order" type="com.example.Order"/>
</data>

и в коде, когда я хочу иметь переменную привязки

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
ActivityOrderOnePaneBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_order_one_pane);
binding.setOrder(mOrder);

Связывание равно null, у меня нет ошибок компиляции.

  • 2
    Использовали ли вы layout как корневой элемент файла макета?
  • 0
    Да, я сделал, и Android делает классы, и все, что у меня нет ошибки Complie, поэтому я могу работать без проблем
Показать ещё 6 комментариев
Теги:
android-databinding

1 ответ

1
Лучший ответ

Поскольку вы переопределяете setContentView в своем Activity, вам нужно заменить:

ActivityOrderOnePaneBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_order_one_pane);

с

ActivityOrderOnePaneBinding binding = DataBindingUtil.inflate(getLayoutInflater(), R.layout.activity_order_one_pane, getContentFrame(), false);
setContentView(binding.getRoot());

У меня была такая же проблема, потому что я переопределил setContentView в моей базе Activity и исправил ее.

  • 0
    Спасибо, это действительно работает;)
  • 0
    не могу найти определение getContentFrame( )
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню