Jedną z najfajniejszych funkcji obsługi powiązań danych Androida jest to, że generuje również pola dla zestawu Wyświetl z identyfikatorami. To upraszcza bazę kodową, ponieważ nie są wymagane żadne połączenia ani połączenia.Android leniwy powiązanie danych możliwe?
Problem polega na tym, że instancję powiązania można odzyskać tylko za pomocą wywołania bind()
, które zwykle planuje wiązanie. Jest to złe, gdy dane są odbierane asynchronicznie i zwykle zostaje wyrzucony NullPointerException
.
Czy można pobrać instancję powiązania z polami widoku minus faktyczny proces powiązania danych?
Stack Trace:
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Boolean.booleanValue()' on a null object reference
at com.app.android.databinding.ActivityRestaurantDetailsBinding.executeBindings(ActivityRestaurantDetailsBinding.java:381)
at android.databinding.ViewDataBinding.executePendingBindings(ViewDataBinding.java:350)
at android.databinding.ViewDataBinding$6.run(ViewDataBinding.java:167)
at android.databinding.ViewDataBinding$5.onViewAttachedToWindow(ViewDataBinding.java:137)
at android.view.View.dispatchAttachedToWindow(View.java:14525)
Spodziewałem się tego samego. Po sprawdzeniu wygenerowanego kodu, było wiele sprawdzeń zerowych, ale nie było to prawdą dla tego typu boolowskiego. Czy to brzmi jak błąd? – razzledazzle
To samo dla 'android: text =" @ {DateFormatter.format (item.orderDate)} "'. Powoduje to wywołanie przez NPE przyczyny 'DateFormatter.format (null)'. – drindt
Po korzystaniu z databinding w ciągu ostatnich kilku miesięcy wydaje się, że nadal istnieje wiele problemów z zerowym sprawdzaniem, co jest bardzo rozczarowujące. Najbardziej znaną przyczyną jest boolean type @ @ zzazazzle –