数据绑定中 if else 语句中的两种不同 return 类型
Two different return types in if else statement in data binding
我正在尝试使用数据绑定在 TextView
中设置文本。我正在使用 if else 语句,如果值为 true,我想将 String 设置为 TextView
,在另一种情况下,我想分配 String 资源的 id。我的代码:
android:text="@{object.isTrue ? object.getString : object.getStringId}"
但是当我尝试这样做时,我收到错误消息,指出无法将 Integer 转换为 String。
当我尝试像这样直接分配这个字符串资源时一切正常:
android:text="@{object.getStringId}"
是否可以在 if else 语句中使用两种不同的 return 类型?
是的,您可以在第二个上使用 Context.getString(),这样两者都是一个字符串。我认为这应该有效:
android:text="@{object.isTrue ? object.getString : context.getString(object.getStringId)}"
您不必导入上下文,它是自动导入的。
我正在尝试使用数据绑定在 TextView
中设置文本。我正在使用 if else 语句,如果值为 true,我想将 String 设置为 TextView
,在另一种情况下,我想分配 String 资源的 id。我的代码:
android:text="@{object.isTrue ? object.getString : object.getStringId}"
但是当我尝试这样做时,我收到错误消息,指出无法将 Integer 转换为 String。
当我尝试像这样直接分配这个字符串资源时一切正常:
android:text="@{object.getStringId}"
是否可以在 if else 语句中使用两种不同的 return 类型?
是的,您可以在第二个上使用 Context.getString(),这样两者都是一个字符串。我认为这应该有效:
android:text="@{object.isTrue ? object.getString : context.getString(object.getStringId)}"
您不必导入上下文,它是自动导入的。