2015-11-04 18 views
12

C'è un modo per scrivere un codice multilinea con la libreria DataBinding?Associazione dati - Come scrivere dichiarazioni multilinea?

ho provato dopo, ma si lamenta formato XML

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

Con seguente errore: Error:(80) Error parsing XML: not well-formed (invalid token)

singola linea alternativa funziona, ma io lo trovo meno leggibile:

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

Hai avuto fortuna? Anche noi siamo interessati a questo. – nAndroid

+0

@nAndroid Ancora non ho trovato una soluzione per DataBinding, ma puoi controllare la mia ultima risposta su questa domanda qui sotto. –

risposta

1

Ho provato a scavare e non ho trovato risposta. Non so che puoi suddividere i letterali delle stringhe in questo modo in xml. In alternativa mi sento di raccomandare scaricando la valutazione al ViewModel, invece, sotto forma di:

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

poi nella classe ViewModel

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