前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于MVP架构在Android上的应用

关于MVP架构在Android上的应用

作者头像
Mezereon
发布2019-02-25 11:24:25
6580
发布2019-02-25 11:24:25
举报
文章被收录于专栏:MyBlogMyBlog

最近研究了一下android开发的一些框架,对于开发整体上具有一定好处,对于拓展测试修改也具有一定的优势。

Model:用于数据的增删改查等,也包括一些数据对象 View:用于界面的显示与用户操作的接收,在Android里面View通常就是Actvitiy,Fragment。 Presenter:是View跟Model的“中间人”,接收View的请求后,从Model获取数据交给View。 下面自己尝试进行一个简单的mvp框架的编写 首先是一个登陆画面 Model层:

代码语言:javascript
复制
      public interface  IModel {            //一个接口
      boolean login(String id,String pwd);  //返回登陆是否成功的一个函数
      }

具体的Model代码实现

代码语言:javascript
复制
public class Model implements IModel{
@Override
public booleanlogin(String id, String pwd) {
if(id.equals("xp")&&pwd.equals("saber")){
return true;
}else{
return false;
}
}
}

Presenter层:

代码语言:javascript
复制
public interfaceIPresenter {
void    onCreate();//在Activity Create的时候顺便调用
boolean  performOnClick(String id,String pwd); //按钮点击后的一个perform
}

具体实现

代码语言:javascript
复制
public class Presenter implements IPresenter {
private IMainActivity  mainActivity;
private IModel   model;
public Presenter(IMainActivity mainActivity){
this.mainActivity=mainActivity;
this.model=newModel() ;
}
@Override
public void  onCreate() {
}
@Override
public boolean  performOnClick(String id, String pwd) {
if(model.login(id,pwd)){
return true;
}
return false;
}
}

View层:

代码语言:javascript
复制
public interface IMainActivity {
}
public class MainActivity extends AppCompatActivity implements IMainActivity{
private Button button;
private EditText idEditText;
private EditText pwdEditText;
private IPresenter presenter;
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
presenter=newPresenter(this);
presenter.onCreate();
button.setOnClickListener(newView.OnClickListener() {
@Override
public voidonClick(View view) {
if(presenter.performOnClick(idEditText.getText().toString(),pwdEditText.getText().toString())){
Toast.makeText(MainActivity.this,"success",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(MainActivity.this,"fail", Toast.LENGTH_SHORT).show();
}
}
});
}
public voidinit(){
button= (Button) findViewById(R.id.button);
idEditText= (EditText) findViewById(R.id.idEditText);
pwdEditText= (EditText) findViewById(R.id.pwdEditText);
}
}

以上就是一个简单的登陆mvp架构的实现

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.08.03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档