MVP的简单登录
来源:互联网 发布:淘宝宠物狗 编辑:程序博客网 时间:2024/06/05 11:03
MVP
M:model:业务,网络处理 耗时操作
V: view;视图 比如Activity 降低耦合
P :presenter: 初始化model层的处理 ,跟V层简历联系, 处理逻辑,
Model层
public interface IUserMode { /** * 登录 * * @param user * @return 约定返回"true"为登录成功,其他为登录失败的错误信息 */ String login(User user);}
public class UserMode implements IUserMode { private String code; @Override public String login(User user) { HashMap<String, String> map = new HashMap<>(); map.put("mobile",user.getUsername()); map.put("password",user.getPassword()); OkHttp3Utils.getInstance().doPost(API.LOGIN, map, new GsonObjectCallback<Userbeann>() { @Override public void onUi(Userbeann userbeann) { code = userbeann.getCode(); } @Override public void onFailed(Call call, IOException e) { } }); return code; }}
P层捡来连接 处理
public class UserPresenter { private final IUserView userView; private final UserMode userMode; public UserPresenter(IUserView userView) { this.userView = userView; this.userMode = new UserMode(); } /** * 登录 * * @param user */ public void login(final User user) { final String res = userMode.login(user); if ("0".equals(res)) { userView.onLoginSuccess(); } else { userView.onLoginFailed(res); } }}
VIew层
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; }}
public class Userbeann { private String msg; private String code; public Userbeann(String msg, String code) { this.msg = msg; this.code = code; } @Override public String toString() { return "Userbeann{" + "msg='" + msg + '\'' + ", code='" + code + '\'' + '}'; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public String getCode() { return code; } public void setCode(String code) { this.code = code; }}
//对应的API的借口
public class API { public static final String IP="http://120.27.23.105"; public static final String LOGIN=IP+"/user/login";}
//两个bean类
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; }}
public class Userbeann { private String msg; private String code; public Userbeann(String msg, String code) { this.msg = msg; this.code = code; } @Override public String toString() { return "Userbeann{" + "msg='" + msg + '\'' + ", code='" + code + '\'' + '}'; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public String getCode() { return code; } public void setCode(String code) { this.code = code; }}
//主页面
public class MainActivity extends AppCompatActivity implements IUserView, View.OnClickListener { private UserPresenter userPresenter; private EditText etUserName; private EditText etPassword; private ProgressDialog loginProgreess; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etUserName = (EditText)findViewById(R.id.name); etPassword = (EditText)findViewById(R.id.pass); btn = (Button)findViewById(R.id.btn); btn.setOnClickListener(this); userPresenter = new UserPresenter(this); } @Override public void onClick(View view) { final String username = etUserName.getText().toString().trim(); final String password = etPassword.getText().toString().trim(); if(TextUtils.isEmpty(username) || TextUtils.isEmpty(password)){ Toast.makeText(getApplicationContext(), "账号或密码不能为空", Toast.LENGTH_SHORT).show(); return; } loginProgreess = ProgressDialog.show(this, "登录", "正在登录..."); userPresenter.login(new User(username, password)); } @Override public void onLoginSuccess() { loginProgreess.dismiss(); Toast.makeText(getApplicationContext(),"登录成功",Toast.LENGTH_LONG).show(); } @Override public void onLoginFailed(String error) { loginProgreess.dismiss(); Toast.makeText(getApplicationContext(), "登录失败:" + error, Toast.LENGTH_SHORT).show(); }}
//相关布局
<?xml version="1.0" encoding="utf-8"?><RelativeLayout 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: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.eightgroup.mvp.MainActivity"> <EditText android:id="@+id/name" android:layout_width="match_parent" android:layout_height="wrap_content" /> <EditText android:layout_below="@+id/name" android:id="@+id/pass" android:layout_width="match_parent" android:layout_height="wrap_content" /> <Button android:layout_below="@+id/pass" android:id="@+id/btn" android:text="登录" android:layout_width="wrap_content" android:layout_height="wrap_content" /></RelativeLayout>
阅读全文
0 0
- MVP的简单登录
- MVP的简单登录
- MVP简单的实现登录
- 简单的用MVP实现登录界面
- Android MVP模式的简单登录
- MVP 一个简单的登录+判断
- mvp的基本登录(简单实现)
- MVP简单登录实现
- 简单登录 MVP
- MVP模式的简单介绍跟简单实现登录功能
- 简单实现mvp模式登录
- 简单的一个利用MVP做的登录
- android+使用mvp做一个简单的登录
- 使用MVP模式实现简单的登录功能
- 一个登录的MVP例子
- MVP的简单理解
- MVP的简单理解
- MVP的简单实例
- 后缀数组2.0--Height数组(bzoj 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式)
- Storm概念、原理详解及其应用(二)Storm Cluster
- MVC三层模式解析
- Mac中jdk更新eclipse无法启动
- linux中yum命令的练习
- MVP的简单登录
- php发送email
- VMware Tools安装教程
- 11 1&&11 2总结
- TypeScript快餐教程 (1)
- Leetcode 54. Spiral Matrix
- 移动通信制式常识
- 电影热搜API及微信菜单自定义开发
- Android解决使用广播监听网络状态变化时接收到多个广播的问题