Как изменить источник данных, к которому привязан элемент в Android - PullRequest
0 голосов
/ 22 мая 2019

Я хотел бы иметь возможность изменить источник данных, к которому привязан элемент.

Например, предположим, что у меня есть свойство enable кнопки, привязанное к какому-либо заданному свойству, например:

<Button
   android:id="@+id/btnZero1"
   android:enabled="@{mSystem.item[0].Online }" />

Это хорошо связывает.Однако, что если я хочу динамически изменить эту привязку, чтобы указать на mSystem.item[1] .Online во время выполнения.Это возможно?

1 Ответ

0 голосов
/ 12 июня 2019

Да, это возможно. Получатель переменной должен иметь аннотацию @Bindable в классе модели, которую вы передали в тег данных макета.

Выполните несколько шагов: 1. Модельный класс должен расширять класс BaseObservable. 2. Затем вам нужно использовать @Bindable с геттером вашей переменной, который вы должны наблюдать для динамических изменений. [Это сгенерирует переменную в вашем автоматически сгенерированном классе BR] 3. Затем в установщике просто используйте notifyPropertyChanged (BR.your_variable_name)

Таким образом, как только вы внесете изменения в переменную @Bindable, она будет наблюдать за изменениями. Как только вы сделаете какие-либо изменения в переменной models, он обновит пользовательский интерфейс.

...