电商项目 简单的mvp 适合出学者 view层和presenter层的接口回调
来源:互联网 发布:达内2017java视频下载 编辑:程序博客网 时间:2024/05/21 09:03
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <EditText android:id="@+id/username_et" android:hint="请输入账号" android:layout_width="match_parent" android:layout_height="wrap_content" /> <EditText android:id="@+id/password_et" android:hint="请输入密码" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="textPassword" /> <Button android:id="@+id/login_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登录"/> </LinearLayout>/////////////////////////这是v层 ///////////////////////////////////////////// 实现接口的方法 通过方法拿到传回来的值package com.example.jiekou01;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.Toast; public class MainActivity extends AppCompatActivity implements Callback, View.OnClickListener { private static final String TAG = "MainActivity"; public static final String USERNAME = "wuzhanglao"; public static final String PASSWORD = "470782682"; private EditText username_et; private EditText password_et; private Button login_btn; private Titleview titleview; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); username_et = (EditText) findViewById(R.id.username_et); password_et = (EditText) findViewById(R.id.password_et); login_btn = (Button) findViewById(R.id.login_btn); login_btn.setOnClickListener(this); titleview = new Titleview(this); //通过this把自己的方法传过去 ,方便去拿那边的值 //实例化对象 调titleview的方法 把UI层的值拿走 } //雇一个叫main的管家,然后把自己登录成功和登录失败的联系方式给他 //如果登录成功,管家会拨打loginSuccess这个电话 //如果登录失败,管家会拨打logniFailed(String msg)这个电话 //现在是UI层 public void LoginSuccess() { Toast.makeText(MainActivity.this,"管家打电话过来说:登录成功",Toast.LENGTH_SHORT).show(); } @Override public void LoginFailed(String msg) { Toast.makeText(MainActivity.this,"管家打电话过来说:"+msg,Toast.LENGTH_SHORT).show(); } //他通过我们实例化对象 来我们UI层拿数据 public void onClick(View v) { switch (v.getId()) { case R.id.login_btn: String username = username_et.getText().toString(); String password = password_et.getText().toString(); // 让自己的管家去处理登录事件 titleview.login(username, password); break; } }} //////////////////////////////////////////////////////////////////接口package com.example.jiekou01;/** * Created by gq on 2017/11/6. */public interface Callback { //如果登录成功,管家会拨打这个电话(接口) void LoginSuccess(); //如果登录失败,管家会拨打这个电话(接口),并告诉MainActivity大妹子为什么登录失败 void LoginFailed(String msg);}
////////////////////////p层写逻辑代码 减少Acitivity 的臃肿///////////////////////////////////////
package com.example.jiekou01;import android.view.View;/** * Created by gq on 2017/11/6. */public class Titleview { //private static final String TAG = "Titleview"; //p层 private Callback view; public Titleview(Callback v) { this.view=v; } public void login(String username, String password) { if (username.isEmpty() || password.isEmpty()) { view.LoginFailed("账号或密码不能为空"); } else if (username.length() < 8 || password.length() < 9) { view.LoginFailed("账号至少8位,密码至少9位"); } else if (username.equals(MainActivity.USERNAME)) { if (password.endsWith(MainActivity.PASSWORD)) { // 登录成功,main拨打loginSuccess()电话通知主人登录成功了 view.LoginSuccess(); } else { // 登录失败,main拨打loginFailed()电话通知主人登录失败了,并告知失败原因 view.LoginFailed("密码错误"); } } } }
阅读全文
0 0
- 电商项目 简单的mvp 适合出学者 view层和presenter层的接口回调
- mvp 简单的案例, mvp实现登录及注册 分为moudle数据层 activity视图v层 Presenter逻辑层
- MVP之Android官方MVP架构学习—View层和Presenter层
- Android官方TODO-MVP项目分析(上)---View 层 Presenter 层以及 Contract 分析
- Android 基于 MVP 框架的下拉刷新、上拉加载页面,View和Presenter层基类封装
- .NET平台上的Model-View-Presenter(MVP)模式实践
- Dao层,Controller层、View层 ,Service层的简单了解
- MVP中Presenter的使用
- 电层的分割
- 出学者的茫然~~
- MVP for Android: 如何来设计Presenter层(译)
- iOS view层的组织和调用
- ip层和4层的接口实现分析
- ip层和4层的接口实现分析
- ip层和4层的接口实现分析
- Model-View-Presenter(MVP)概述
- MVP (Model View Presenter ) 简介
- Android MVP(Model View Presenter)
- ubuntu1604配置最新版opencv2(在已经配置好cuda的基础上)
- 中国社会各阶级的分析
- 四周第一次课 2017.11.06 lvm讲解、磁盘故障小案例
- LibreOJ NOIP Round #1 DNA 序列
- vue-loader配置
- 电商项目 简单的mvp 适合出学者 view层和presenter层的接口回调
- HDU-2717 Catch That Cow(搜索)
- oracle:高级查询
- Javascript中bind()方法的使用与实现
- (5)通配符
- RGB 计算公式
- uboot启动内核
- 明天的程序员
- 375. Guess Number Higher or Lower II