我是Android Databinding的新手,对ObservableField的使用有一个疑问。 假设
private ObservableField<String> name;
private String name;
在这两种情况下,我们都必须在设置新值时调用 notifyPropertyChanged((。那么,ObservableField 比 String 有优势吗?
ObservableField
或LiveData
是MVVM的重要概念。
在 xml 中,您可以为 xml 定义可观察数据。此数据始终由 xml 观察。这意味着,如果将数据设置为名称类,则 xml 将自动更新。
<data>
<variable
name="name"
type="your.class.name"/>
</data>
并且,在 xml 中使用它。例如,对TextView
使用名称。
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@={name}"/>
接下来,在 Java 代码中,将ObservableField
名称插入到绑定中。
YourBinding binding = DataBindingUtil.inflate(LayoutInflater.from(this), R.layout.your, null, false);
binding.setName(name);