26

有没有办法用 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}"
4

1 回答 1

5

我尝试进行一些挖掘,但找不到答案。我不知道您可以在 xml 中以这种方式分解字符串文字。作为替代方案,我建议将评估卸载到 viewModel,其形式为:

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

然后在您的 viewModel 类中

@Bindable
public String getSubscriptionStatus(){
    return getSubscriptionExpiration() == null
            ? getField1()
            : getField2();
}
于 2017-11-29T02:50:03.897 回答