Использование ObservableField <String>над строкой в ​​привязке данных Android - PullRequest
0 голосов
/ 30 сентября 2019

Я новичок в Android Databinding и у меня есть одно сомнение в использовании ObservableField. Предположим,

private ObservableField<String> name; 

private String name;

В обоих случаях мы должны вызвать notifyPropertyChanged () при установке нового значения. Итак, есть ли преимущество ObservableField над String?

1 Ответ

0 голосов
/ 30 сентября 2019

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);
...