转载请标明出处:
最近闲来无事总结一下自己对MVP模式的使用,废话不多说直接上代码!
代码结构:
简单说一下代码结构,MvpLoginActivity.java不多说了,BaseView.java我在里面写了一些公共的方法,比如加载对话框,显示统一错误等回调方法(稍后我会截图),LoginContract.java是处理登录模块对应的请求方法与回调方法,LoginPresenter.java是处理业务逻辑等操作。
一、BaseView .java
简单说一下此类中的方法,showLogin(String msg)方法是登录请求网络是弹出加载框,dismissLoding()销毁加载框,onError(String msg)是统一处理错误。
二、LoginContract.java
此类中首先定义两个抽象内部类,Presenter类是登录请求的方法(先简单只传用户名和密码字段),如果有修改密码等方法也可以写在此处,IView是登录成功回调的方法。
三、LoginPresenter.java
此类实现LoginContract.Presenter,实现了上面说到了reqLogin()方法,此处用线程是模仿网络请求时间,如果登录成功直接回调onRespLogin()方法,失败回调onError()方法。
四、MvpLoginActivity.java
此类中实现LoginContract.IView中的方法,首先定义个LoginPresenter对象,在oncreate中初始化,登录时调用presenter.reqlogin()方法,登录成功后回调onRespLogin()方法,失败回调onError()方法。
不知道写的大家能否看懂,如有问题还请大家勿喷,多多指教!