Android数据绑定setText()通过模型绑定

时间:2018-10-09 12:03:45

标签: android android-databinding

在我的xml中,有一行android:text='@{entry.printTitle}'

在我的适配器中,我用binding.setEntry(item);方法设置了条目:bind()

在某些情况下,我想使用binding.entryTitle.setText("some other title")手动设置该字段,但是它不起作用。如何在不影响输入的情况下设置该字段?

1 个答案:

答案 0 :(得分:2)

您不能覆盖绑定变量的值。如果要更改依赖视图,则必须更改其变量值。

您可以为此使用另一个变量。并根据需要在第二个变量中设置值。完成后,只需将第二个变量设置为空即可。

android:text='@{entry.fakeTitle ?? entry.printTitle}'

现在,当您要更改标题而不是其变量时,请在fakeTitle中设置值。

binding.getEntry().setFakeTitle("testing");

完成后将其设置为null,这样文本将再次为printTitle

如果要通过编程方式更改值,则必须使用ObservableField<String>LiveData。如果要扩展BaseObservable,则必须分别设置fakeTitle @Bindablenotify after changing