MVP入门框架搭建
来源:互联网 发布:sql unix timestamp 编辑:程序博客网 时间:2024/05/17 08:22
MVP入门框架搭建
首先,新建一个项目,在项目下创建文件夹,也就是分包:
有人也喜欢将UI命名为view,都是可以的,完全看自己喜好。
在这呢来解释下什么是MVP,简单的说:
M –> Model 在它里面主要处理一些数据,比如网络请求或者是读取本地数据等
V –> View 这就是个视图
P –> Presenter 它主要的左右就是一个桥梁,将M和V链接起来,V需要什么数据,通过P来通知M去获取,M获取到通过P回调传回V中展示,回传一般使用自定义接口回调的形式。
在这就通过MVP来简单的做个项目。
开始新建项目
1、建好项目后,在 presenter下建listener包,来存放回调函数。
2、在listener下创建接口OnGetTextListener
public interface OnGetTextListener { /** * 成功后的回调函数 * @param string */ void onGetTextSuccess(String string); /** * 失败后的回调函数 * @param string */ void onFetTextFail(String string);}
3、在model下新建TextModel.class文件,主要用于获取数据,比如网络请求或者是从本地数据库读取数据等。
public class TextModel { public void getText(final OnGetTextListener listener){ /* 在此执行网络请求,或者读取本地数据库文件 此处只用线程阻塞模拟下网络请求 */ try { Thread.sleep(2000); listener.onGetTextSuccess("MVP入门框架搭建"); }catch (InterruptedException e){ //出现异常,标示失败,调用失败的回调方法 listener.onFetTextFail(e.getMessage()); } }}
4、在presenter下新建TextPresenter.class文件,主要用于view向presenter发送请求指令后,presenter调用model中的方法来获取数据。
public class TextPresenter { private TextModel model; private OnGetTextListener listener; /* 初始化实例,将view中的listener传递过来,方便回调函数获取数据 */ public TextPresenter (OnGetTextListener listener){ model = new TextModel(); this.listener = listener; } public void onGetText(){ model.getText(listener); }}
5、下面MainActivity中要做的事情就是初始化presenter实例,然后调用其方法,告知model,model获取到数据后通过listener回调函数将数据传递到MainActivity中,刷新view。
public class MainActivity extends AppCompatActivity implements OnGetTextListener,View.OnClickListener{ private Button btn; private TextView textview; private TextPresenter presenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //初始化控件 initView(); //获取数据 initData(); } //初始化控件 private void initView() { btn = (Button) findViewById(R.id.btn); textview = (TextView) findViewById(R.id.textview); btn.setOnClickListener(this); } //获取数据 private void initData() { presenter = new TextPresenter(this); } //数据成功回调 @Override public void onGetTextSuccess(String string) { textview.setText("回调成功:" + string); } //数据失败回调 @Override public void onFetTextFail(String string) { textview.setText("回调失败:" + string); } @Override public void onClick(View v) { presenter.onGetText(); }}
一定要记得MainActivity必须实现OnGetText接口。
到此,一个MVP入门框架就算是完成了。恭喜你!
附GitHub下载地址:https://github.com/WKQuan/MVPFrame
阅读全文
0 0
- MVP入门框架搭建
- 搭建MVP模板框架
- 搭建MVP框架要点记录
- Android中的MVP框架搭建
- 搭建自己的MVP框架
- Android Mvp快速搭建框架MVP+Dagger2+Retrofit+Rxjava
- Rxjava + retrofit + dagger2 + mvp搭建Android框架
- 浅谈retrofit2.1+okhttp3 搭建MVP框架
- 搭建MVP+Retrofit+RxJava框架详解
- MVP项目框架搭建-高级设计
- MVP 项目框架搭建 — 高级设计
- RxJava2 + Retrofit2 + Mvp + Dagger2框架搭建
- 搭建一个基本的MVP框架
- Retrofit+RXJava+MVP的框架搭建
- Android框架模式(1)-MVP入门
- Android框架模式(1)-MVP入门
- Android框架模式(1)-MVP入门
- springmvc入门---框架搭建
- 激活函数
- opencv的Mat类基本操作
- ubuntu永久dns设置
- Logistic回归-模型·损失函数·参数更新
- 图片倒计时实现原理--js
- MVP入门框架搭建
- iOS weex~Apache
- HDU-2017 ACM/ICPC Asia Regional Shenyang Online-1005-number number number
- Tkinter 控件详细介绍
- 360手机开启Log打印
- Android自定义 View 练习 —— 心电图的绘制
- Problem B: Ants (弹性碰撞)
- const修饰符
- 华为 提取不重复的整数