Android 安卓MVP架构(带视频)
视频源地址:
发布日期:2021-07-01 04:34:20
浏览次数:2
分类:技术文章
本文共 3344 字,大约阅读时间需要 11 分钟。
引入
M:M层,也就是我们在程序中经常出现的model层,他的功能就是处理数据,其他任务不由他来接手。
V:V层,我们的view层,也就是显示数据的地方,我们在得到数据之后,把数据传递给view层,通过他来显示数据。同时,view层的点击事件等处理会在这里出现,但真正的数据处理不是在这里,而是在model层中处理。
P:P层,也就是Presenter层,他是我们mvp架构中的中间人,通过p层的连接,让我们可以是M层和V层进行通信。M层在获取到数据之后,把它交给P,P层在交给View层,同样,View层的点击事件等处理通过P层去通知M层,让他去进行数据处理。
推荐文章
视频讲解:点击下方按钮播放
mvp架构模式讲解(仅限于新手理解)
代码如下
MainActivity:package com.brk.mvp;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.Button;import android.widget.TextView;public class MainActivity extends AppCompatActivity implements View { private TextView news; private Button add; private Button less; MainPresenter mainPresenter = new MainPresenter(this); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); mainPresenter.show(); } @Override public void addNum(String string) { news.setText(string); } @Override public void lessNum(String string) { news.setText(string); } @Override public void showNum(String string) { news.setText(string); } private void initView() { news = (TextView) findViewById(R.id.news); add = (Button) findViewById(R.id.add); less = (Button) findViewById(R.id.less); add.setOnClickListener(new android.view.View.OnClickListener() { @Override public void onClick(android.view.View v) { mainPresenter.addNum(); } }); less.setOnClickListener(new android.view.View.OnClickListener() { @Override public void onClick(android.view.View v) { mainPresenter.lessNum(); } }); }}
MainPresenter:
package com.brk.mvp;public class MainPresenter implements Presenter { PeopleBean peopleBean = new PeopleBean("NorthernBrain", 0); private View view; public MainPresenter(View view) { this.view = view; } @Override public void addNum() { peopleBean.setNum(peopleBean.getNum() + 1); view.addNum(peopleBean.toString()); } @Override public void lessNum() { peopleBean.setNum(peopleBean.getNum() - 1); view.addNum(peopleBean.toString()); } @Override public void show() { view.showNum(peopleBean.toString()); }}
PeopleBean:
package com.brk.mvp;public class PeopleBean { private String name; private int num; public PeopleBean(String name, int num) { this.name = name; this.num = num; } @Override public String toString() { return "PeopleBean{" + "name='" + name + '\'' + ", num=" + num + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNum() { return num; } public void setNum(int num) { this.num = num; }}
Presenter:
package com.brk.mvp;public interface Presenter { void addNum(); void lessNum(); void show();}
View:
package com.brk.mvp;public interface View { void addNum(String string); void lessNum(String string); void showNum(String string);}
布局:
转载地址:https://myhub.blog.csdn.net/article/details/89944125 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
很好
[***.229.124.182]2024年05月07日 02时56分24秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
OAuth 2.0 总结
2019-05-08
夯实基础系列一:Java 基础总结
2019-05-08
遇到并发,上锁是个好习惯
2019-05-08
夯实基础系列三:数据库知识总结
2019-05-08
夯实基础系列二:网络知识总结
2019-05-08
闭环思维,让你更加优秀的诀窍
2019-05-08
【Spring 系列】1. 搭建和配置Spring与jdbc整合的环境
2019-05-08
夯实基础系列四:Linux 知识总结
2019-05-08
三年前找工作的我,希望给正在求职的你一些启发
2019-05-08
【Spring 系列】一、如何从spring中获取bean
2019-05-08
安装报错pip install mysqlclient
2019-05-08
Docker部署Python3+Django+MySQL+uWSGI+Nginx
2019-05-08
Centos 7 安装docker
2019-05-08
Centos7 安装pip
2019-05-08
Docker 搭建MongoDB 4.0副本集
2021-07-11
Docker构建MySQL5.7
2021-07-11
Docker部署Redis
2021-07-11