我正在尝试使用数据绑定在TextView
中设置文本。我正在使用if else语句,如果值为true,我想将String设置为TextView
,而在另一种情况下,我想分配String资源的id。我的代码:
android:text="@{object.isTrue ? object.getString : object.getStringId}"
但是当我尝试这样做时,我得到的错误是Integer无法转换为String。
当我尝试直接分配这个String资源时,一切都没问题:
android:text="@{object.getStringId}"
是否有可能在if else语句中使用两种不同的返回类型?
答案 0 :(得分:1)
是的,你可以在第二个上使用Context.getString(),这样两者都是一个String。我认为这应该有效:
android:text="@{object.isTrue ? object.getString : context.getString(object.getStringId)}"
您不必导入上下文,它是自动导入的。