2015-11-04 2 views
12

Есть ли способ написать многострочный код с библиотекой DataBinding?Data Binding - Как написать многострочные объявления?

Я попытался следующие, но он жалуется на формат 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. В качестве альтернативы я бы рекомендовал разгружая оценку в ViewModel вместо этого, в виде:

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

затем в вашем ViewModel класса

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