Android データ バインディング サポートの最も優れた機能の 1 つは、ID が設定されたビューのフィールドも生成することです。これにより、フィールドやfindViewById()
呼び出しが不要になるため、コードベースが整理されます。
bind()
しかし問題は、バインディング インスタンスは、バインディングをスケジュールする傾向がある呼び出しを介してのみ取得できることです。これは、データが非同期に受信され、一般的NullPointerException
にスローされる場合には問題です。
実際のデータ バインディング プロセスを除いて、View フィールドを持つバインディング インスタンスを取得できますか?
スタックトレース:
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)