Androidデータバインディングサポートの最もクールな機能の1つは、View with IDのフィールドを生成することです。これはフィールドがないか、findViewById()
呼び出しが必要であるため、コードベースを整理します。Androidの遅延データバインディングは可能ですか?
しかし、問題は、バインディングインスタンスは、バインディングをスケジュールする傾向のあるbind()
呼び出しによってのみ取得できることです。これは、データが非同期的に受信され、一般にNullPointerException
がスローされると悪いです。
ビューフィールドのバインディングインスタンスから実際のデータバインディングプロセスを引いたものを取得できますか?
スタックトレース:これが意味をなすようには見えません
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)
私は同じことも期待していました。生成されたコードをチェックすると、ヌルチェックが多数行われていましたが、このブール型では正しくありませんでした。これはバグのようですか? – razzledazzle
'android:text =" @ {DateFormatter.format(item.orderDate)} "の場合は同じです。これにより、NPEが 'DateFormatter.format(null)'を呼び出す原因になります。 – drindt
過去数ヶ月にわたりデータバインディングを使用した後、ヌルチェックにはまだ多くの問題が残っていますが、これは非常に残念です。 @razzledazzleが言ったようにブール型である最も顕著な原因は –