MVP的简单实现(本地登陆)
来源:互联网 发布:linux socket udp监听 编辑:程序博客网 时间:2024/06/05 17:20
M层package com.example.mvp2;/** * author:Created by MingShao on 2017/12/1. */public interface LoginModel { public interface OnloginFinishListener{ void showProgress(); void hideProgress(); void onSuccess(); void inFailed(); } void login(String username,String userpwd,OnloginFinishListener onloginFinishListener);}------------------------------------------------------------package com.example.mvp2;import android.os.Handler;import android.text.TextUtils;/** * author:Created by MingShao on 2017/12/1. */public class LoginModelpi implements LoginModel{ @Override public void login(String username, String userpwd, final OnloginFinishListener onloginFinishListener) { if(TextUtils.isEmpty(username)){ onloginFinishListener.inFailed(); return; } if(TextUtils.isEmpty(userpwd)){ onloginFinishListener.inFailed(); return; } new Handler().postDelayed(new Runnable() { @Override public void run() { onloginFinishListener.onSuccess(); } },5000); }}
V层package com.example.mvp2;/** * author:Created by MingShao on 2017/12/2. */public interface LoginView { void showProgress(); void hideProgress(); void onSuccess(); void inFailed();}------------------------------------------------------------package com.example.mvp2;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.ProgressBar;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements LoginView{ private EditText etnam; private EditText etpwd; private ProgressBar pb; private LoginPresenter loginPresenter; private Button bt; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etnam = findViewById(R.id.etname); etpwd = findViewById(R.id.etpwd); bt = findViewById(R.id.bt); pb = findViewById(R.id.pb); loginPresenter = new LoginPresenterImpl(this); bt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { loginPresenter.verfiyLogin(etnam.getText().toString(),etpwd.getText().toString()); } }); } @Override public void showProgress() { pb.setVisibility(View.VISIBLE); } @Override public void hideProgress() { pb.setVisibility(View.GONE); } @Override public void onSuccess() { Toast.makeText(this,"登陆成功",Toast.LENGTH_SHORT).show();; } @Override public void inFailed() { etnam.setError("用户名错误"); etpwd.setError("密码错误"); Toast.makeText(this,"登陆失败",Toast.LENGTH_SHORT).show(); }}
P层package com.example.mvp2;/** * author:Created by MingShao on 2017/12/1. */public interface LoginPresenter { void verfiyLogin(String username,String userpwd);}------------------------------------------------------------package com.example.mvp2;/** * author:Created by MingShao on 2017/12/1. */public class LoginPresenterImpl implements LoginPresenter,LoginModel.OnloginFinishListener { private final LoginModel loginModel; LoginView loginView; public LoginPresenterImpl(LoginView loginView) { this.loginView = loginView; loginModel = new LoginModelpi(); } @Override public void verfiyLogin(String username, String userpwd) { if(loginView==null) return; loginModel.login(username,userpwd,this); } @Override public void showProgress() { loginView.showProgress(); } @Override public void hideProgress() { loginView.hideProgress(); } @Override public void onSuccess() { loginView.onSuccess(); } @Override public void inFailed() { loginView.inFailed(); }}
M层布局<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.mvp2.MainActivity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/etname" android:hint="请输入用户名" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/etpwd" android:hint="请输入密码" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/bt" android:text="登陆" /> <ProgressBar android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/pb" /></LinearLayout>
阅读全文
0 0
- MVP的简单实现(本地登陆)
- 一个简单登陆示例的MVC和MVP实现
- Mvp实现登陆注册
- MVP实现登陆注册
- MVP实现登陆注册
- MVP 实现原理及简单案例登陆(二)
- MVP架构的简单实现
- MVP简单的实现登录
- mvp模式的登陆
- MVP模式实现接口登陆
- 简单的实现页面登陆
- 单点登陆的简单实现
- MVP 深引用方式的简单实现
- Android mvp的简单使用和实现
- Android中MVP模式的简单实现
- Mvp+Rxandroid+Retrofit的简单实现
- Android MVP模式的简单实现
- Android最简单的方式实现MVP
- struct net_device
- SpringMVC Interceptor拦截器
- java中的拆箱与装箱
- C语言
- Python基础——Eclipse+PyDev组成的Python开发环境
- MVP的简单实现(本地登陆)
- javaweb总结1.0
- jQuery仿QQ登录表单弹出窗 -- 一天一篇文章,持续更新
- js中实现页面重定向跳转和模态框的使用
- Zookeeper+ActiveMQ集群搭建
- java对单向单向链表的操作
- 牛客练习赛7 B 购物(动态规划)
- 迭代器 生成器 装饰器
- php编译安装pecl拓展遇到的问题