我正在使用数据绑定库。我在XML中有这个:
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="@{!myAdapter.isEmpty}"/>
我希望只有当Spinner适配器不为空时才能启用EditText。应用启动时,会禁用EditText。到目前为止,非常好。
然后,在我的活动中,项目被插入适配器中。但之后:
myAdapter.notifyDataSetChanged();
未启用EditText。我还需要做更多其他事情吗?
答案 0 :(得分:2)
能够通知数据绑定有关您可以使用ObservableBoolean
的内容:
...
<variable name="isAdapterEmpty"
type="android.databinding.ObservableBoolean" />
...
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="@{!isAdapterEmpty}"/>
然后通知数据绑定有关这样的更改:
myAdapter.notifyDataSetChanged();
isAdapterEmpty.set(myAdapter.isEmpty());
或者你可以在你的适配器中创建自己的方法,它将返回ObservableBoolean
而不是简单的布尔值,并提供将此值管理到适配器的能力。