MVP简单的实现登录
来源:互联网 发布:ubuntu 16.04 重装 编辑:程序博客网 时间:2024/06/05 03:27
//首先写一个封装的User类
public class User { private String username; private String password; public User(String username, String password) { this.username = username; this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }}
//定义一个Model的接口
public interface Imodel { /** * 登录 * * @param user * @return 约定返回"true"为登录成功,其他为登录失败的错误信息 */ String login(User user);}
//定义一个VIew的接口
public interface Iview { /** * 登录成功 */ void onLoginSuccess(); /** * 登录失败 * * @param error */ void onLoginFailed(String error);}
//用Model类来实现接口
public class UserModel implements Imodel { @Override public String login(User user) { boolean networkError = false; //网络是否异常 try { Thread.sleep(2000);//模拟网络连接 if (networkError) { return "网络异常"; } else if ("zhangchaofei".equals(user.getUsername()) && "123456".equals(user.getPassword())) { return "true"; } else { return "账号或密码错误"; } } catch (InterruptedException e) { e.printStackTrace(); return e.getMessage(); }}}//定义一个Presenter类进行M和V交互
public class UserPresenter { private final Iview iview; private final UserModel userModel; public UserPresenter(Iview iview) { this.iview=iview; this.userModel=new UserModel(); } /** * 登录 * * @param user */ public void login(final User user) { new Thread() { @Override public void run() { final String res = userModel.login(user); new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { if ("true".equals(res)) { iview.onLoginSuccess(); } else { iview.onLoginFailed(res); } } }); } }.start(); }}
//最后在MainAvtivity实现
public class MainActivity extends AppCompatActivity implements Iview{ private UserPresenter userPresenter; private EditText etUserName; private EditText etPassword; private ProgressDialog loginProgreess; private Button login; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etUserName= (EditText) findViewById(R.id.editText); etPassword= (EditText) findViewById(R.id.editText2); login= (Button) findViewById(R.id.button); userPresenter=new UserPresenter(this); login.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String username = etUserName.getText().toString().trim(); String password = etPassword.getText().toString().trim(); if (TextUtils.isEmpty(username) || TextUtils.isEmpty(password)) { Toast.makeText(getApplicationContext(), "账号或密码不能为空", Toast.LENGTH_SHORT).show(); return; } loginProgreess = ProgressDialog.show(MainActivity.this, "登录", "正在登录..."); userPresenter.login(new User(username, password)); } }); } @Override public void onLoginSuccess() { loginProgreess.dismiss(); Toast.makeText(getApplicationContext(), "登录成功", Toast.LENGTH_SHORT).show(); } @Override public void onLoginFailed(String error) { loginProgreess.dismiss(); Toast.makeText(getApplicationContext(), "登录失败:" + error, Toast.LENGTH_SHORT).show(); }}
阅读全文
0 0
- MVP简单的实现登录
- MVP简单登录实现
- 简单的用MVP实现登录界面
- mvp的基本登录(简单实现)
- MVP的简单登录
- MVP的简单登录
- 简单实现mvp模式登录
- MVP模式的简单介绍跟简单实现登录功能
- 使用MVP模式实现简单的登录功能
- Android MVP模式的简单登录
- MVP 一个简单的登录+判断
- MVP架构的简单实现
- mvp 简单的案例, mvp实现登录及注册 分为moudle数据层 activity视图v层 Presenter逻辑层
- 简单登录 MVP
- MVP的实现:登录为例
- 这是一个使用mvp模式实现模拟用户登录的简单Demo。
- android mvp实现登录
- MVP 实现登录注册
- jar包本地安装以及常用maven仓库
- sql_mode...foreign_key_checks...unique_checks...sql_notes不能为null
- 虚拟机 Invalid system disk 错误解决方法
- less 特性(一)
- 辅助域控问题处理
- MVP简单的实现登录
- Hibernate之多对多关系之间的关系映射
- Bootstrap学习笔记04
- 微服务架构
- 第五章 ReentrantLock源码解析1--获得非公平锁与公平锁lock()
- spring cloud stream kafka 动态写入不同的topic(Using dynamically bound destinations)
- XGBoost中参数调优的完整指南(含Python-3.X代码)
- 百度人工智能
- SpringMVC 上传下载