Android如何通过数据绑定(bind)在 TextView 中使用字符串变量

标签 android xml android-databinding

美好的一天,我正在练习使用布局的技能,刚刚学习了数据绑定(bind),我想知道如何在 TextView 中使用像 defaultName 这样的变量,所以我尝试这样做:

android:text="@={`hi `+ myName.defaultName}"

我希望输出是:

hi Travis Scott

但是我得到了一个令人讨厌的错误:

cannot find symbol class ActivityMainBindingImpl
import com.example.nickname.databinding.ActivityMainBindingImpl;
[databinding] {"msg":"The expression \u0027(\"hi \") + (myNameDefaultName)\u0027 cannot be inverted, so it cannot be used in a two-way binding\n\nDetails: Two-way binding with string concatenation operator (+) only supports the empty string constant (`` or \"\")","file":"app\\src\\main\\res\\layout\\activity_main.xml","pos":[{"line0":27,"col0":25,"line1":27,"col1":49}]}
                                       ^

我研究了这个错误,但没有找到解决方案。我研究了人们用来解决这个问题的替代方案,但我没有找到任何东西。我唯一发现的是这个“@={hi + myName.defaultName}”,就是这样。

最佳答案

您正在尝试双向绑定(bind)而不是单向绑定(bind)。只需删除“=”符号并更改括号即可

android:text='@{"hi" + item.title}'

关于Android如何通过数据绑定(bind)在 TextView 中使用字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65832547/

相关文章:

java - 使用 GWT 读取一个非常大的本地 XML 文件

android - 如何使用 ObservableField

java - 编译java时如何抑制Cannot Find Symbol错误?

android - SnackBar 和 fitSystemWindows

android - 在 android 安装上执行自定义代码

xml - 这是好的 XML 吗?

xml - 将两个 XPath 合并为一个

java - Android数据绑定(bind)双向不起作用

android - 事件的 Otto 事件总线运行时订阅

android - SeekBar 拇指(9 补丁)无法识别