在我的xml中,我有一行android:text='@{entry.printTitle}'
在我的适配器中,我在bind()
方法中设置了条目:binding.setEntry(item);
。
在某些情况下,我想使用binding.entryTitle.setText("some other title")
手动设置该字段,但它不起作用。如何在不影响不可变条目的情况下设置该字段?
不能覆盖绑定变量的值。如果要更改相关视图,则必须更改其变量值。
为此,您可以采用另一个变量。并在需要时在第二个变量中设置值。完成后,只需将第二个变量设为 null。
android:text='@{entry.fakeTitle ?? entry.printTitle}'
现在,当您想要更改标题但不更改其变量时,请在fakeTitle
中设置值。
binding.getEntry().setFakeTitle("testing");
完成后将其设为空,以便再次printTitle
文本。
如果要以编程方式更改值,则必须使用ObservableField<String>
或LiveData
。如果您要按BaseObservable
扩展,则必须进行fakeTitle
@Bindable
并在更改后通知。