Android封装MVP实现登录注册功能

本文实例为大家分享了Android封装MVP实现登录注册功能,供大家参考,具体内容如下

model包:

import com.bwei.mvps.bean.UserBean;

/**
 * 1. 类的用途
 * 2. @author forever
 * 3. @date 2017/9/1 16:00
 */

public interface IUserModel {
 void setFirstName(String firstName);

 void setLastName(String lastName);

 String getFirstName();

 String getLastName();

 //根据id获取对象
 UserBean load(int id);
}
import android.util.Log;

import com.bwei.mvps.bean.UserBean;

/**
 * 1. 类的用途
 * 2. @author forever
 * 3. @date 2017/9/1 16:04
 */

public class UserModel implements IUserModel {
 @Override
 public void setFirstName(String firstName) {
 Log.i("xxx", firstName);
 }

 @Override
 public void setLastName(String lastName) {
 Log.i("xxx", lastName);

 }

 @Override
 public String getFirstName() {
 return null;
 }

 @Override
 public String getLastName() {
 return null;
 }

 @Override
 public UserBean load(int id) {
 //查询数据库或联网获取数据
 Log.i("fff", id + "");

 return new UserBean("张", "三");
 }
}

View包

/**
 * 1. 类的用途
 * 2. @author forever
 * 3. @date 2017/9/1 15:53
 */

public interface UserView {
 void setFirstName(String firstName);

 void setLastName(String lastName);

 int getId();

 String getFirstName();

 String getLastName();
}

presenter包:

import android.util.Log;

import com.bwei.mvps.MainActivity;
import com.bwei.mvps.bean.UserBean;
import com.bwei.mvps.model.IUserModel;
import com.bwei.mvps.model.UserModel;
import com.bwei.mvps.view.UserView;

/**
 * 1. 类的用途
 * 2. @author forever
 * 3. @date 2017/9/1 16:05
 */

public class UserPresenter {

 private UserView userview;
 private final IUserModel iUserModel;

 public UserPresenter(UserView userview) {
 this.userview = userview;
 iUserModel = new UserModel();

 }

 //保存数据
 public void saveUser(int id, String firstName, String lastName) {
 UserBean userBean = iUserModel.load(id);
 Log.i("sss", "id:" + id + ",firstName:" + firstName + ",lastName:" + lastName);

 }

 //查询数据
 public void find(int id) {
 UserBean userBean = iUserModel.load(id);
 String firstName = userBean.getFirstName();
 String lastName = userBean.getLastName();
 userview.setFirstName(firstName);
 userview.setLastName(lastName);

 Log.i("aaa", "id:" + id + ",firstName:" + firstName + ",lastName:" + lastName);

 }
}

XML

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout

 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical">

 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">

 <TextView
  android:layout_width="70dp"
  android:layout_height="wrap_content"
  android:text="ID"/>

 <EditText
  android:id="@+id/et_id"
  android:layout_width="0dp"
  android:layout_height="wrap_content"
  android:layout_weight="1"/>
 </LinearLayout>

 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">

 <TextView
  android:layout_width="70dp"
  android:layout_height="wrap_content"
  android:text="FirstName"/>

 <EditText
  android:id="@+id/et_first_name"
  android:layout_width="0dp"
  android:layout_height="wrap_content"
  android:layout_weight="1"/>
 </LinearLayout>

 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">

 <TextView
  android:layout_width="70dp"
  android:layout_height="wrap_content"
  android:text="LastName"/>

 <EditText
  android:id="@+id/et_last_name"
  android:layout_width="0dp"
  android:layout_height="wrap_content"
  android:layout_weight="1"/>
 </LinearLayout>

 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">

 <Button
  android:id="@+id/bt_register"
  android:layout_width="0dp"
  android:layout_height="wrap_content"
  android:layout_weight="1"
  android:text="注册"/>

 <Button
  android:id="@+id/bt_login"
  android:layout_width="0dp"
  android:layout_height="wrap_content"
  android:layout_weight="1"
  android:text="登录"/>
 </LinearLayout>
</LinearLayout>

Mactivity

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

import com.bwei.mvps.presenter.UserPresenter;
import com.bwei.mvps.view.UserView;

public class MainActivity extends AppCompatActivity implements View.OnClickListener, UserView {

 private EditText et_id;
 private EditText et_first_name;
 private EditText et_last_name;
 private Button bt_login;
 private Button bt_register;
 private UserPresenter userPresenter;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 //找控件
 et_id = (EditText) findViewById(R.id.et_id);
 et_first_name = (EditText) findViewById(R.id.et_first_name);
 et_last_name = (EditText) findViewById(R.id.et_last_name);
 bt_login = (Button) findViewById(R.id.bt_login);
 bt_register = (Button) findViewById(R.id.bt_register);
 bt_login.setOnClickListener(this);
 bt_register.setOnClickListener(this);
 //声明UserPresenter
 userPresenter = new UserPresenter(this);

 }

 @Override
 public void onClick(View view) {
 switch (view.getId()) {
  case R.id.bt_register://保存数据
  userPresenter.saveUser(getId(), getFirstName(), getLastName());
  break;
  case R.id.bt_login:
  userPresenter.find(getId());
  break;
 }
 }

 @Override
 public void setFirstName(String firstName) {
 et_first_name.setText(firstName);
 }

 @Override
 public void setLastName(String lastName) {
 et_last_name.setText(lastName);
 }

 @Override
 public int getId() {
 return new Integer(et_id.getText().toString());
 }

 @Override
 public String getFirstName() {
 return et_first_name.getText().toString();
 }

 @Override
 public String getLastName() {
 return et_last_name.getText().toString();
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • Android开发之注册登录方法示例
  • Android设计登录界面、找回密码、注册功能
  • Android注册登录实时自动获取短信验证码
  • Android客户端实现注册、登录详解(1)
  • Android实现闪屏及注册和登录界面之间的切换效果
  • Android客户端实现注册、登录详解(2)
  • Android实现登录注册功能封装
  • Android手机注册登录时获取验证码之后倒计时功能(知识点总结)
  • Android登录注册功能 数据库SQLite验证
(0)

相关推荐

  • Android手机注册登录时获取验证码之后倒计时功能(知识点总结)

    app注册界面经常会遇到一个场景:手机注册,点击获取验证码,验证码发送成功之后,开始倒计时 具体代码如下所示: private TimerTask timerTask; private Timer timer; private int time = 5000;//五秒 private int timess; /** * 开始倒计时 */ private void startTimer() { timess = time/1000; tvTime.setText(timess+"S");

  • Android实现登录注册功能封装

    我们都知道Android应用软件基本上都会用到登录注册功能,那么对一个一个好的登录注册模块进行封装就势在必行了.这里给大家介绍一下我的第一个项目中所用到的登录注册功能的,已经对其进行封装,希望能对大家有帮助,如果有什么错误或者改进的话希望各位可以指出. 我们都知道登录注册系列功能的实现有以下几步: 注册账号 登录账号 (第三方账号登录) 记住密码 自动登录 修改密码 大体的流程如下 对于需要获取用户登录状态的操作,先判断用户是否已经登录. 如果用户已经登录,则继续后面的操作,否则,跳转到登录页面

  • Android登录注册功能 数据库SQLite验证

    本文实例为大家分享了Android登录注册功能的具体代码,供大家参考,具体内容如下 展示效果 代码区 MainActivity(登录方法) public class MainActivity extends AppCompatActivity { @BindView(R.id.editText) EditText editText; @BindView(R.id.editText2) EditText editText2; @BindView(R.id.button) Button button

  • Android开发之注册登录方法示例

    本文所述,继续上一篇关于Android端向服务器端发送数据的方法进一步完善注册登录的方法,由于版本问题出现一点瑕疵,今天经过调试已经解决,在这里给大家介绍一下. 在Android4.0以后版本的对于网络权限要求变得严格,致使上一篇所述的案例无法将数据发送到服务器端,当你一点击发送数据,Android控制台就会报错,错误当然是很让人头疼,基本上都是关于http的错误,所以可以肯定是Android虚拟机向服务器发送数据时出现了错误,经过一番检查与测试后才知道,4.0之后的版本,主线程中不允许调用网络

  • Android设计登录界面、找回密码、注册功能

    本文实例为大家分享了Android 登录.找回密码.注册功能的实现代码,供大家参考,具体内容如下 1.数据库的设计 我在数据库中添加了两张表,一张表用来存储用户信息,诸如用户名,密码,手机号等,可任意添加.另一张表用来存储上一个登录用户的账户信息,我是为了方便才另外创建了一张表去存储,而且这张表我设计了它只能存储一条信息,每次的存储都是对上一条记录的覆盖.事实上,我尝试过在存储用户信息的那张表内添加一个标识,用来标记上一次登录的是哪一个帐号,但是这样做的话,每次改变标识都需要遍历整张表,十分的麻

  • Android注册登录实时自动获取短信验证码

    android应用的自动化测试必然会涉及到注册登录功能,而许多的注册登录或修改密码功能常常需要输入短信验证码,因此有必要能够自动获得下发的短信验证码. 主要就是实时获取短信信息. android上获取短信信息主要有BroadcastReceiver方式与数据库方式,要实时的话就BroadcastReceiver比较方便,分享一篇文章大家可以查看一下,点击. public class SMSReceiver extends BroadcastReceiver{ private String ver

  • Android实现闪屏及注册和登录界面之间的切换效果

    在没给大家介绍正文之前先给大家说下实现思路: 先分别实现闪屏.注册界面.登录界面的活动,再用Intent将相关的活动连接起来,实现不同活动之间的跳转.此次试验代码较多,我只列出主要代码,详细的代码可用底部的下载链接下载. 一.实验效果图: 二.主要代码: (1)WelcomeActivity.Java(这部分代码实现的是第一页的欢迎页面) package com.example.flashscreendemo; import android.app.Activity; import androi

  • Android客户端实现注册、登录详解(2)

    上文中介绍了安卓客户端与服务器交互,实现注册功能,Android客户端实现注册/登录详解(一) 本文将继续介绍App与服务器的交互实现登录和自动登录的功能,上文说到请求服务器进行注册主要是通过POST请求携带参数实现,起作用的主要代码: StringRequest request=new StringRequest(Method.POST, url, new Listener<String>() { //请求成功 @Override public void onResponse(String

  • Android客户端实现注册、登录详解(1)

    我们在开发安卓App时难免要与服务器打交道,尤其是对于用户账号信息的注册与登录更是每个Android开发人员必须掌握的技能,本文将对客户端的注册/登录功能的实现进行分析,不到之处还请指出. 在这里我们仅讨论客户端如何请求服务器进行注册,而服务器在收到客户端请求后进行的一系列操作并不在本文所述范围内,有兴趣大家可以参考 请求服务器 客户端在进行用户信息的注册和登录时一般使用post请求(携带参数)去服务器.以volley框架请求服务器为例,真正与服务器进行交互的就是如下代码: StringRequ

  • Android封装MVP实现登录注册功能

    本文实例为大家分享了Android封装MVP实现登录注册功能,供大家参考,具体内容如下 model包: import com.bwei.mvps.bean.UserBean; /** * 1. 类的用途 * 2. @author forever * 3. @date 2017/9/1 16:00 */ public interface IUserModel { void setFirstName(String firstName); void setLastName(String lastNam

  • Android使用OKhttp3实现登录注册功能+springboot搭建后端的详细过程

    目录 一.Android前端实现 二.数据库 三.SpringBoot后端搭建 四.部署至服务器 五.运行测试 一.Android前端实现 新建一个login的项目,主要的几个文件在这里 1.gradle引入OKhttp3依赖 implementation 'com.squareup.okhttp3:okhttp:3.14.7' implementation 'com.squareup.okio:okio:1.17.5' 2.activity_main.xml布局文件 <?xml version

  • Android实现登录注册功能

    本文实例为大家分享了Android实现登录注册功能的具体代码,供大家参考,具体内容如下 运行环境 Android Studio 总体效果图 一. 设计注册页面的布局 二.完成注册功能 (1) 添加User类 (2)添加 UserManager类 管理用户信息 package com.example.videoplayer; import android.hardware.usb.UsbRequest; import java.io.BufferedReader; import java.io.F

  • Android用SharedPreferences实现登录注册注销功能

    Android用SharedPreferences实现登录注册注销功能 前言 本文用SharedPreferences本地缓存账号信息来实现登录注册功能,以及退出注销功能. 一.本文逻辑 本文的注册登录逻辑如下: 1.注册页面:有账号可以直接去登录页面.没有账号的话填写账号密码,检测账号密码不为空,点击立即注册,保存账号信息,跳转到登录页面. 2.登录页面:首先读取缓存的账号密码和是否记住密码,将账号显示,判断记住密码的标志,为空或false,不显示密码,需要输入密码,为true则直接将缓存的密

  • JavaWeb实现用户登录注册功能实例代码(基于Servlet+JSP+JavaBean模式)

    下面通过通过图文并茂的方式给大家介绍JavaWeb实现用户登录注册功能实例代码,一起看看吧. 一.Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据. Servlet+JSP+JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式. 这里以一个最常用的用户登录注册程序来讲解Servlet+JS

  • 图解NodeJS实现登录注册功能

    该Demo根据菜鸟教程的练手项目,请提前到菜鸟教程的官网查看nodejs的相关教程,根据教程实际操作一遍,然后自己动手去实现登录.注册功能,此Demo只作参考,不符合前端相关规范. 使用的技术栈 node+express+mongodb 项目目录结构 node_modules: 第三方模块目录 public: 公共文件目录(js.css.image) login.html:登录页面 register.html:注册页面 main.html:主页面 db.js:数据库相关封装(数据库添加.查询)

  • vue中uni-app 实现小程序登录注册功能

    思路: 1.使用微信的 open-type="getUserInfo" 获取用户信息,将用户信息保存到userinfoDetails对象中去. <button v-else type="primary" class="reserve-btn" open-type="getUserInfo" @getuserinfo="getuserinfo">预约挂号</button> 2.使用 u

  • Angular获取手机验证码实现移动端登录注册功能

    之前一直在用jQuery来做项目,使用比较熟练,目前公司要求使用angular来做项目,遇到一个登录模块如下所示,功能有两个方面,一个是点击按钮获取验证码,一个是点击登录验证表单.从用户体验角度来考虑有两个要注意的地方,默认两个按钮应该都是不可点击的,输入正确的手机号时验证码的按钮可点击,当再输入验证码时登录按钮可点击. 代码结构如下: <form name="loginForm" ng-controller="loginCtrl" ng-submit=&qu

随机推荐