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