本文主要是在上文的基礎上增加事件綁定。
具體的功能表現如圖,輸入文本并點擊顯示按鈕后,屏幕中間區域顯示輸入的文本內容。
圖1
首先,修改 MainVM,新增 textContent 屬性,該屬性與 TextView 的 android:text 綁定。而原先的 content 屬性保持不變,依然是與 EditText 的 android:text 綁定。
圖2
MVVM 某種意義上是基于數據驅動的。從這個角度出發。下圖的代碼就是這個功能實現的重點。
圖3
我們只需將show方法與按鈕做事件綁定就完事了。而該方法是定義在 MainVM 里還是其他類里都是沒問題的,主要看個人理解。對于小編來說,更希望是保持 VM 類的單一性,即僅僅是與數據相關。所以新建 MainPresenter 類。( MVP 的 P)
圖4
有了 MainVM, MainPresenter。 接下來就是修改 xml 文件。將 按鈕的事件綁定到 MainPresenter.show()方法。
圖5
1,聲明 presenter 為 MainPresenter 類型。
2,綁定按鈕事件。
圖6
重點在于 ()->presenter.show(vm),假如show方法需要 view 對象的話,則可修改為 (view)->presenter.show(view, vm)。
最后,通過 binding類對presenter 賦值。運行,一切正常。收工。該例子代碼:mvvm