博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android mvp设计模式
阅读量:6679 次
发布时间:2019-06-25

本文共 3909 字,大约阅读时间需要 13 分钟。

新建LoginInfo类

public class LoginInfo {    private String loginName;    public String getLoginName() {        return loginName;    }    public void setLoginName(String loginName) {        this.loginName = loginName;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    private String password;}

新建IUserBiz登录接口

public interface IUserBiz {    void login(String username, String password, OnLoginListener loginListener);}

新建OnLoginListener接口

public interface OnLoginListener {    void loginSuccess(LoginInfo loginInfo);    void loginFailed();}

新建IUserLoginView接口

public interface IUserLoginView {    String getLoginName();    String getPassword();    void showSuccess();    void showFailedError();}

新增UserBiz类

public class UserBiz implements IUserBiz {    @Override    public void login(final String loginName, final String password, final OnLoginListener loginListener) {        new Thread() {            @Override            public void run() {                try {                    Thread.sleep(1000);                } catch (InterruptedException e) {                    e.printStackTrace();                }                if ("123".equals(loginName) && "123".equals(password)) {                    LoginInfo user = new LoginInfo();                    user.setLoginName(loginName);                    user.setPassword(password);                    loginListener.loginSuccess(user);                } else {                    loginListener.loginFailed();                }            }        }.start();    }}

新增UserLoginPresenter类

public class UserLoginPresenter {    private IUserBiz userBiz;    private IUserLoginView userLoginView;    private Handler handler = new Handler();    public UserLoginPresenter(IUserLoginView userLoginView)    {        this.userLoginView = userLoginView;        this.userBiz = new UserBiz();    }    public void login(){        userBiz.login(userLoginView.getLoginName(), userLoginView.getPassword(), new OnLoginListener() {            @Override            public void loginSuccess(LoginInfo loginInfo) {                handler.post(new Runnable() {                    @Override                    public void run() {                        userLoginView.showSuccess();                    }                });            }            @Override            public void loginFailed() {                handler.post(new Runnable() {                    @Override                    public void run() {                        userLoginView.showFailedError();                    }                });            }        });    }}

新增UserLoginActivity

public class UserLoginActivity extends AppCompatActivity implements IUserLoginView {    EditText dtLoginName, dtPassword;    Button btnLogin;    UserLoginPresenter userLoginPresenter = new UserLoginPresenter(this);    @Override    public String getLoginName() {        return dtLoginName.getText().toString();    }    @Override    public String getPassword() {        return dtPassword.getText().toString();    }    @Override    public void showSuccess() {        Toast.makeText(this, "成功", Toast.LENGTH_LONG).show();    }    @Override    public void showFailedError() {        Toast.makeText(this, "失败", Toast.LENGTH_LONG).show();    }    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_login);        dtLoginName = (EditText) findViewById(R.id.loginName);        dtPassword = (EditText) findViewById(R.id.password);        btnLogin = (Button) findViewById(R.id.btnLogin);        btnLogin.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                userLoginPresenter.login();            }        });    }}

 

转载于:https://www.cnblogs.com/lemonzwt/p/8109465.html

你可能感兴趣的文章
IDEA开发工具报错----使用Tomcat启动项目报错
查看>>
MySQL学习记录: 常见问题
查看>>
leetcode-90. Subsets II
查看>>
【Redis学习笔记】2018-06-08 主从复制实现
查看>>
[JS]《你不知道的Javascript·上》——词法作用域和闭包
查看>>
使用XHProf分析PHP性能瓶颈(一)
查看>>
Mysql联合索引最左匹配原则
查看>>
Angular1.x + TypeScript 编码风格
查看>>
poi操作excel,复制sheet,复制行,复制单元格,复制style
查看>>
JavaScript中的变量提升(Hoisting)
查看>>
详解 | TiDB 2.0 GA is here!
查看>>
GridManager 导出
查看>>
360前端星学习笔记-HTML
查看>>
vue踩坑
查看>>
Linux常用命令
查看>>
JavaScript函数式编程之错误处理,强壮代码
查看>>
django ModelForm中添加非必填项(not require)字段方法
查看>>
正则表达式之小有名气
查看>>
《PHP 设计模式》翻译完毕
查看>>
关于前端RSA加密和解密的研究
查看>>