【问题标题】:How to Change the Datasource that an Element is Bound to in Android如何在 Android 中更改元素绑定的数据源
【发布时间】:2019-05-22 19:22:45
【问题描述】:
我希望能够更改元素绑定到的数据源。
例如,假设我有一个按钮的 enabled 属性绑定到某个给定属性,如下所示:
<Button
android:id="@+id/btnZero1"
android:enabled="@{mSystem.item[0].Online }" />
这很好绑定。但是,如果我想在运行时动态更改此绑定以指向 mSystem.item[1].Online 怎么办。这可能吗?
【问题讨论】:
标签:
android
data-binding
android-databinding
【解决方案1】:
是的,这是可能的。变量的 getter 应该在模型类中具有 @Bindable 注释,您已在布局的数据标签中传递了该注释。
执行以下几个步骤:
1. 模型类应该扩展 BaseObservable 类。
2. 然后您需要将@Bindable 与您需要观察动态变化的变量的getter 一起使用。 [它将在您自动生成的 BR 类中生成变量]
3. 然后,在设置器中使用 notifyPropertyChanged(BR.your_variable_name)
通过这种方式,一旦您对 @Bindable 变量进行了更改,它就会观察更改。只要您对模型变量进行任何更改,它就会更新 UI。