2015-11-04 32 views
12

有沒有辦法用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}" 
+2

任何運氣?我們也對此感興趣。 – nAndroid

+0

@nAndroid我仍然沒有找到DataBinding的解決方案,但您可以在下面的這個問題上查看我的最新答案。 –

回答

1

我試着做一些挖掘並找不到答案。我不知道你可以用xml來分解字符串文字。作爲替代方案,我建議卸載評價到視圖模型,而不是在形式:

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

然後在您的ViewModel類

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