我能夠在沒有任何困難的情況下使「整個活動範圍」的數據綁定工作。然而,當我嘗試爲特定視圖設置綁定時,例如說我以編程方式將其添加到LinearLayout的誇大的視圖,我嘗試過的任何東西都不起作用。以編程方式添加到LinearLayout的各個視圖上的Android數據綁定?
例如,將數據綁定到Activity的視圖是微不足道的。通常在onCreate()方法中只需添加:
MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);
User user = new User("Test", "User");
binding.setUser(user);
就是這樣!視圖main_activity.xml將通過一些魔術(這是我的問題)「綁定」到綁定,並且變量替換將在main_activity.xml中按預期工作。
我諮詢了Google關於RecyclerView使用的文檔,並試圖在我充氣的Views中使用這種方法。我通過爲每個ViewHolder創建了一個ListItemBinding(我的.xml被稱爲list_item.xml,這個文件是自動生成的.xml佈局),ListItemBinding被傳遞給ViewHolder作爲參考每個ViewHolder的構造函數。
當然這不起作用,我猜測這是因爲我的視圖和綁定之間沒有明確的聯繫,但是,上面的Activity和Binding之間沒有聯繫,所以爲什麼那樣有用嗎?我正在深入研究源代碼,以瞭解綁定如何工作在活動上,我相信這將會得到我的答案,但如果其他人在我花費多個小時之前可以響個不停,我將不勝感激,開始!
我會在這裏報告所有的發現,非常感謝你
有一些技巧使用Android數據綁定與RecyclerView。看看這個談話https://realm.io/news/data-binding-android-boyar-mount/ - 約22分鐘,Yigit談到如何使用RecyclerView的數據綁定。 –
@GeorgeMount我實際上並不想使用RecyclerView,因爲每個列表最多隻有5個視圖,所以沒有很多回收工作要做......無論如何,我確實使用LinearLayout切換到適當的RecyclerViews並添加視圖單獨給它。這很容易,額外的開銷可能是值得直接的方法。 – AutoM8R