史上最简单的MVP模式
来源:互联网 发布:社交网络利大于弊问题 编辑:程序博客网 时间:2024/05/18 01:07
本篇文章适合那些对MVP设计模式有一定了解但还不是很熟悉的同学。如果有写得不对的地方,欢迎指正。
那我们就来写一个简单的demo吧,从实例上来学比较快。就举一个登录的例子。
第一步:第一资源文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.my.myapplication.MainActivity" android:weightSum="1"> <EditText android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入账号" /> <EditText android:id="@+id/pass" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入密码" /> <Button android:id="@+id/dengLu" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="登录" /></LinearLayout>
第二步:首先我们需要定义一个接口,接口干嘛用的???(握了棵草,也不讲讲清楚,上来就接口!!!)没关系,我在代码中给你注释了,不怕你看不懂。
public interface IMainView { //登录成功,就调用这个方法 void LoginSuccess(); //登录失败,就调用这个方法 void LoginFailed(String msg);}
第三步,业务逻辑我们就写在Presenter里面
public class MainPresenter { private IMainView view; // public MainPresenter(IMainView view) { this.view = view; } //处理登录逻辑 public void login(String name,String pass){ if (name.isEmpty()||pass.isEmpty()){ view.LoginFailed("账号或密码不能为空"); }else if (name.length()<6||pass.length()<6){ view.LoginFailed("账号至少6位,密码至少6位"); }else if (name.equals(MainActivity.NAME)&&pass.equals(MainActivity.PASS)){ view.LoginSuccess(); }else { view.LoginFailed("密码或用户名不正确"); } }}
最后,我们要实现那个接口就行了
package com.example.my.myapplication;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements IMainView, View.OnClickListener { public static final String TAG = "MainActivity"; public static final String NAME = "123456"; public static final String PASS = "111111"; EditText nameText, passText; Button mButton; MainPresenter presenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { nameText = (EditText) findViewById(R.id.name); passText = (EditText) findViewById(R.id.pass); mButton = (Button) findViewById(R.id.dengLu); mButton.setOnClickListener(this); presenter = new MainPresenter(this); } @Override public void LoginSuccess() { Toast.makeText(MainActivity.this,"登录成功",Toast.LENGTH_LONG).show(); } @Override public void LoginFailed(String msg) { Toast.makeText(MainActivity.this,msg,Toast.LENGTH_LONG).show(); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.dengLu: String name = nameText.getText().toString(); String pass = passText.getText().toString(); presenter.login(name,pass); } }}
参考链接:http://www.jianshu.com/p/5c133a8a2b0d
2 0
- 史上最简单的MVP模式
- MVP模式的简单理解
- 一个简单的MVP模式
- 超简单的MVP模式案例
- Android中MVP模式的简单实现
- Android中Mvp模式的简单示例
- Android MVP模式的简单实现
- android开发MVP模式的简单应用
- Android中MVP模式的简单应用
- MVP 模式简单易懂的介绍方式
- RecyclerView的MVP模式简单使用
- kotlin实现 简单的MVP模式
- MVP 模式简单易懂的介绍方式
- MVP 模式简单易懂的介绍方式
- MVP 模式简单易懂的介绍方式
- 最简单的MVP模式,简洁易懂。
- Android MVP模式的简单登录
- MVP 模式简单易懂的介绍方式
- 幻灯片预览图--自己写
- Node.js[1] 异步编程
- CFRunloop源码解析-----__CFRunLoopRun初始化纠错认知
- asp.net课程设计——新闻发布系统
- 对于algorithm101的总结
- 史上最简单的MVP模式
- 二叉查找树待改
- 任意进制转换
- 150. Evaluate Reverse Polish Notation(逆波兰式)
- JavaScript 误区
- mvc(composer加载)
- HDU 1227 Fast Food DP *
- HDU Triangle 2016中国大学生程序设计竞赛(长春)-重现赛
- 经典的BM算法