数据绑定中if else语句中的两种不同返回类型

时间:2017-08-31 10:28:21

标签: android data-binding android-resources

我正在尝试使用数据绑定在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语句中使用两种不同的返回类型?

1 个答案:

答案 0 :(得分:1)

是的,你可以在第二个上使用Context.getString(),这样两者都是一个String。我认为这应该有效:

android:text="@{object.isTrue ? object.getString : context.getString(object.getStringId)}"

您不必导入上下文,它是自动导入的。