Androidドキュメントは、レイアウトXMLファイルを使用してバインディングクラスを作成する方法を説明する優れた仕事をしています。しかし、私はいくつかの質問があります。Androidデータバインディングプログラムでインスタンシエートされたビュー
プログラムでインスタンス化されたカスタムビューのデータバインディングクラスを作成する方法はありますか?たとえば、2つのカスタムビュークラスがあり、xmlを使用せずに同じビューモデルオブジェクトをプログラムにバインドしたいとします。次のようにクラスは次のとおりです。
MyCustomView customView = new MyCustomView(context);
は、どのように私はこのケースでは、データバインディングを使用して行くのです。
class MyViewModel {
}
class MyCustomView extends View {
}
class MyAnotherCustomView extends MyCustomView {
}
は今、私が使用してMyCustomView/MyAnotherCustomViewをインスタンス言うことができますか?これは公式のAndroidデータバインディングフレームワークを使用して可能ですか?そうでない場合、これを達成するために他のどのフレームワーク/ライブラリが利用可能か推奨されていますか?
私の2番目の質問は最初の質問のフォローアップです。私の最初の質問で私が望むことを達成することは不可能であると言います。次に、my_custom_view.xml
ファイルを定義する必要があります。これは以下のようになります。私は同じバインディングロジックを維持MyCustomViewのサブクラスであるMyAnotherCustomViewを使用したい場合は
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="user" type="com.example.User"/>
</data>
<com.example.name.MyCustomView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@{user.firstName}"/>
</layout>
は今、私はちょうどでMyCustomViewを置き換えるために新しいXMLファイルmy_another_custom_view.xml
を作成する必要がありますMyAnotherCustomViewは同じバインディングを定義しますか?
'DataBindingUtilの#バインド(ビューのルート)' – pskink
を参照してください私はすでにそれをチェックしたが、私のユースケースを助けていないようです。実例を投稿できますか?多分それは物事を明確にするのに役立つでしょう。ありがとう! – androholic
''私はxml'を使わずに同じビューモデルオブジェクトをプログラムにバインドしたいと思っています ""ああ、申し訳ありませんが、私はそれを見逃しました。バインディングはXMLでのみ定義されるため、データとビューの間のマッピングをどのように定義したいですか? – pskink