MVP模式的基本使用
来源:互联网 发布:Linux 子系统 编辑:程序博客网 时间:2024/06/10 04:33
废话不多说了,现在大部分程序员已经在用mvp了,今天简单的把代码贴出来,相互学习下!
首先就是基类,mvp无非就是 M-model层,V-view层,P-presenter 首先写出MVP层的基类,所以
首先是View 和 Model 接口
public interface IView {}
public interface IModel {}
接下来是写个presenter 用来回调控制m-vpublic interface IPresenter <T extends IView> { void attachView(T view, Context context); void start(String url, Map<String, String> param); void detachView();}然后BasePresenter 实现这个接口,复写方法
public abstract class BasePresenter<T extends IView, M extends IModel> implements IPresenter<T> { protected static final String TAG = "BasePresenter"; protected T mView; protected M mModel; protected Context context; private Dialog mLoadingDialog; @Override public void attachView(T view, Context context) { mView = view; this.context = context; } @Override public void detachView() { context = null; mView = null; mModel = null; } public boolean isViewAttached() { return mView != null && context != null; } public T getView() { return mView; } public M getModel() { return mModel; } public void showLoading(String content) { View view = LayoutInflater.from(context).inflate(R.layout.dialog_loading, null); TextView loadingText = (TextView) view.findViewById(R.id.text); loadingText.setText(content); mLoadingDialog = new Dialog(context, R.style.Dialog); mLoadingDialog.setCancelable(false); mLoadingDialog.setContentView(view, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); mLoadingDialog.show(); } public void dismissLoading() { if (mLoadingDialog != null) { mLoadingDialog.dismiss(); mLoadingDialog = null; } }}
最后是activity的基类
到这里基类就基本完成public abstract class IViewActivity<P extends IPresenter> extends BaseActivity implements IView{ protected P mPresenter; protected Map<String,String> param = new HashMap<>(); @Override protected void onCreate(Bundle savedInstanceState) { mPresenter = onLoadPresenter(); if (getPresenter() != null){ getPresenter().attachView(this,this); } super.onCreate(savedInstanceState); } public P getPresenter() { return mPresenter; } @Override protected void onDestroy() { if (getPresenter() != null) { getPresenter().detachView(); } super.onDestroy(); } protected abstract P onLoadPresenter();}
至于如何运用,下篇博文发出。
阅读全文
1 0
- MVP模式的基本使用
- mvp模式的基本理解
- Android MVP 模式的使用
- Android MVP模式的使用
- Android MVP模式的使用
- MVp基本使用步骤
- MVP模式在android的使用
- Android中 MVP模式的使用
- 浅谈 android mvp 模式的使用
- Android中Mvp模式的使用
- 关于MVP模式的使用设计
- 【Android - 框架】之MVP模式的使用
- Android开发之MVP模式的使用
- RecyclerView的MVP模式简单使用
- MVP+工厂模式的综合使用
- Android中mvp模式的使用
- 正确使用MVP模式
- 为什么使用MVP模式
- androidstudio 如何从svn服务器down项目
- 有趣的autolayout例子
- PES分组字段(table)
- ThreadLocal的一些猫腻
- Maven学习总结(13)——深入理解maven灵活的构建
- MVP模式的基本使用
- Java Socket定长通讯读取消息长度头
- 4 Sum
- 使用tr加解密的ROT13 算法实践
- 字体转换 (代码整理 备忘)
- spring mvc拦截器
- Android自定义view进阶-- 神奇的贝塞尔曲线
- 2017年上半年软件工程师考试--程序员(上午)考点总结二
- TCP/IP协议(二)——三次握手与四次挥手