Android文檔在描述如何使用佈局xml文件創建綁定類方面做得很好。但我有幾個問題。Android數據綁定以編程方式實例化視圖
有沒有辦法爲編程實例化的自定義視圖創建數據綁定類?例如,假設我有兩個自定義視圖類,並且我想以編程方式將相同的視圖模型對象綁定到它們而不使用任何xml。這些類如下:
class MyViewModel {
}
class MyCustomView extends View {
}
class MyAnotherCustomView extends MyCustomView {
}
現在讓我們說我實例MyCustomView/MyAnotherCustomView使用:
MyCustomView customView = new MyCustomView(context);
如何去使用數據在這種情況下綁定?這可能使用官方的Android數據綁定框架嗎?如果沒有,還有哪些其他框架/庫可用或推薦實現這一目標?
我的第二個問題是對第一個問題的跟進。讓我們說在我的第一個問題中不可能實現我想要的。然後,我將不得不定義一個my_custom_view.xml
文件。這將是這個樣子:
<?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>
現在,如果我想使用MyAnotherCustomView這是MyCustomView的保持綁定邏輯相同的一個子類,我必須要創建一個新的XML文件my_another_custom_view.xml
只是爲了取代MyCustomView MyAnotherCustomView來定義相同的綁定?
看到'DataBindingUtil#綁定(查看根)' – pskink
我已經檢查了,但它似乎並沒有幫助我的使用情況。你能發表一個有效的例子嗎?也許這將有助於澄清事情。謝謝! – androholic
'「,我想要將相同的視圖模型對象以編程方式綁定到它們,而不使用任何xml'」哦,對不起,我錯過了,那麼你究竟想要達到什麼目的?綁定僅在xml中定義,那麼您如何定義數據和視圖之間的映射? – pskink