android+使用mvp做一个简单的登录
来源:互联网 发布:创维网络机顶盒 编辑:程序博客网 时间:2024/06/07 08:09
model包内
IUserMode接口类
package model;import bawei.com.denglu.User;/** * Created by Administrator on 2017/11/1. */public interface IUserMode { /** * 登录 * * @param user * @return 约定返回"true"为登录成功,其他为登录失败的错误信息 */ String login(User user);}
UserMode类(实现接口)package model;import bawei.com.denglu.User;/** * Created by Administrator on 2017/11/1. */public class UserMode implements IUserMode { @Override public String login(User user) { boolean networkError = false; //网络是否异常 try { Thread.sleep(3000);//模拟网络连接 if (networkError) { return "网络异常"; } else if ("ethanco".equals(user.getUsername()) && "123456".equals(user.getPassword())) { return "true"; } else { return "账号或密码错误"; } } catch (InterruptedException e) { e.printStackTrace(); return e.getMessage(); } }}view包下IUserView接口类package view;/** * Created by Administrator on 2017/11/1. */public interface IUserView { /** * 登录成功 */ void onLoginSuccess(); /** * 登录失败 * * @param error */ void onLoginFailed(String error);}presenter包下UserPresenter类package presenter;import android.os.Handler;import android.os.Looper;import bawei.com.denglu.User;import model.UserMode;import view.IUserView;/** * Created by Administrator on 2017/11/1. */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) { new Thread() { @Override public void run() { final String res = userMode.login(user); new Handler(Looper.getMainLooper()).post(new Runnable() { @Override public void run() { if ("true".equals(res)) { userView.onLoginSuccess(); } else { userView.onLoginFailed(res); } } }); } }.start(); }}User类package bawei.com.denglu;/** * Created by Administrator on 2017/11/1. */public class User { 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; } private String username; private String password;}MainActivity类package bawei.com.denglu;import android.app.ProgressDialog;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.text.TextUtils;import android.view.View;import android.widget.EditText;import android.widget.Toast;import presenter.UserPresenter;import view.IUserView;public class MainActivity extends AppCompatActivity implements IUserView, View.OnClickListener { private UserPresenter userPresenter; private EditText etUserName; private EditText etPassword; private ProgressDialog loginProgreess; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etUserName = (EditText) findViewById(R.id.et_userName); etPassword = (EditText) findViewById(R.id.et_password); findViewById(R.id.btn_login).setOnClickListener(this); userPresenter = new UserPresenter(this); } @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(); } @Override public void onClick(View v) { 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(this, "登录", "正在登录..."); userPresenter.login(new User(username, password)); }}activity_main类<?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" tools:context="bawei.com.denglu.MainActivity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/et_userName" android:text="账号" android:layout_margin="15dp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/et_password" android:text="密码" android:layout_below="@+id/et_userName" android:layout_margin="15dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:id="@+id/btn_login" android:text="登录" /></RelativeLayout>
阅读全文
0 0
- android+使用mvp做一个简单的登录
- 简单的一个利用MVP做的登录
- MVP 一个简单的登录+判断
- Android MVP模式的简单登录
- MVP的简单登录
- MVP的简单登录
- 使用JDBC做一个简单的登录,注册页面!
- 这是一个使用mvp模式实现模拟用户登录的简单Demo。
- 用MVP做一个登录注册
- MVP简单的实现登录
- 一个登录的MVP例子
- 使用MVP模式实现简单的登录功能
- Android mvp的简单使用和实现
- Android中使用MVP的简单封装
- Android MVP框架和简单的使用
- MVP的简单使用
- MVP的简单使用
- MVP的简单使用
- Mac 终端Terminal光标移动快捷键
- 浅析天猫H5站点
- 两个线程并发执行以下代码,假设a是全局变量,那么以下输出___哪个是可能的?
- Android-IntentService的工作原理
- 前端之切切切切切图
- android+使用mvp做一个简单的登录
- JavaScript 的继承与多态
- JAVA作业11-1
- 【Linux】高手养成--10个习惯
- 整理网上在centos 7 安装 Apache 、MySQL、PHP的教程
- 求两个数的最大公约数。
- Intersecting Lines
- CCF201709-3 JSON查询
- PHPmyadmin-mysql 中文??乱码