本文主要是在上文的基础上增加事件绑定。
具体的功能表现如图,输入文本并点击显示按钮后,屏幕中间区域显示输入的文本内容。
首先,修改 MainVM,新增 textContent 属性,该属性与 TextView 的 android:text 绑定。而原先的 content 属性保持不变,依然是与 EditText 的 android:text 绑定。
MVVM 某种意义上是基于数据驱动的。从这个角度出发。下图的代码就是这个功能实现的重点。
我们只需将show方法与按钮做事件绑定就完事了。而该方法是定义在 MainVM 里还是其他类里都是没问题的,主要看个人理解。对于小编来说,更希望是保持 VM 类的单一性,即仅仅是与数据相关。所以新建 MainPresenter 类。( MVP 的 P)
有了 MainVM, MainPresenter。 接下来就是修改 xml 文件。将 按钮的事件绑定到 MainPresenter.show()方法。
1,声明 presenter 为 MainPresenter 类型。
2,绑定按钮事件。
重点在于 ()->presenter.show(vm),假如show方法需要 view 对象的话,则可修改为 (view)->presenter.show(view, vm)。
最后,通过 binding类对presenter 赋值。运行,一切正常。收工。该例子代码:mvvm