数据绑定 - 如何编写多行声明?

时间:2015-11-04 09:26:24

标签: android android-databinding

有没有办法用DataBinding库编写多行代码?

我尝试过关注,但它抱怨XML格式

android:text="@{
            viewModel.subscriptionExpiration == null
                ? viewModel.field1
                : viewModel.field2
        }"

出现以下错误:Error:(80) Error parsing XML: not well-formed (invalid token)

单行替代工作,但我觉得它不太可读:

android:text="@{viewModel.subscriptionExpiration == null ? viewModel.field1 : viewModel.field2}"

1 个答案:

答案 0 :(得分:1)

我尝试过挖掘而无法找到答案。我不知道你可以用xml分解字符串文字。作为替代方案,我建议将评估版本卸载到viewModel,格式为:

android:text="@{viewModel.subscriptionStatus}"

然后在你的viewModel类

@Bindable
public String getSubscriptionStatus(){
    return getSubscriptionExpiration() == null
            ? getField1()
            : getField2();
}