2015-11-04 31 views
12

DataBinding kitaplığıyla çok satırlı kod yazmanın herhangi bir yolu var mı? Veri Bağlama - Çok satırlı bildirimler nasıl yazılır?

Aşağıdaki çalıştı, ancak aşağıdaki hata ile XML formatında

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

şikayet: Error:(80) Error parsing XML: not well-formed (invalid token)

Tek satırlı alternatif çalışır, ama daha az okunabilir bulmak:

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

Şansın sonra

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

: Bir alternatif olarak ben şeklinde yerine ViewModel değerlendirmeyi boşaltma önerirsiniz? Bununla da ilgileniyoruz. – nAndroid

+0

@nAndroid DataBinding için hala bir çözüm bulamadım, ancak en son cevabımı aşağıda bu sorudan kontrol edebilirsiniz. –

cevap

1

Kazı yapmayı denedim ve bir cevap bulamadım. Bilmiyorum ki, xml cinsinden dize değişmezlerini bölebilirsin. senin ViewModel sınıfının

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