基于模型绑定的Android数据绑定setText()

基于模型绑定的Android数据绑定setText(),android,android-databinding,Android,Android Databinding,在我的xml中有一行android:text='@{entry.printTitle}' 在我的适配器中,我设置了条目:binding.setEntry(item)在bind()方法中 在某些情况下,我想使用binding.entryTitle.setText(“其他标题”)手动设置该字段,但它不起作用。如何设置该字段而不影响不可变的条目?您不能覆盖绑定变量的值。如果要更改从属视图,则必须更改其变量值 为此,可以使用另一个变量。并根据需要在第二个变量中设置值。完成后,只需将第二个变量设为null

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

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


在某些情况下,我想使用
binding.entryTitle.setText(“其他标题”)
手动设置该字段,但它不起作用。如何设置该字段而不影响不可变的条目?

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

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

android:text='@{entry.fakeTitle ?? entry.printTitle}'
现在,当您想要更改标题而不是其变量时,请在
fakeTitle
中设置值

binding.getEntry().setFakeTitle("testing");
完成后,将其设为空,这样文本将再次显示为
printTitle


如果以编程方式更改值,则必须使用或。如果您正在扩展,那么您必须使
fakeTitle
@Bindable

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

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

android:text='@{entry.fakeTitle ?? entry.printTitle}'
现在,当您想要更改标题而不是其变量时,请在
fakeTitle
中设置值

binding.getEntry().setFakeTitle("testing");
完成后,将其设为空,这样文本将再次显示为
printTitle


如果以编程方式更改值,则必须使用或。如果您正在扩展,那么您必须使
fakeTitle
@Bindable

然后你需要放弃这里的数据绑定,只需手动设置bind方法,然后你需要放弃这里的数据绑定,只需手动设置bind方法