Android封装MVP实现登录注册功能
时间:2022-07-28
本文章向大家介绍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();
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助。
- 【设计模式】—— 创建者模式Builder
- 【设计模式】——抽象工厂Abstract Factory
- 【前端开发系列】—— 别说你不会Ajax
- 【前端开发系列】—— 通过鼠标浮动改变样式
- 【设计模式】—— 观察者模式Observer
- 【设计模式】—— 备忘录模式Memento
- 【设计模式】—— 中介者模式Mediator
- 【设计模式】—— 迭代模式Iterator
- 【设计模式】—— 解释器模式Interpret
- 【设计模式】—— 命令模式Commond
- 【设计模式】—— 职责链模式ChainOfResponsibility
- 【设计模式】—— 代理模式Proxy
- 【设计模式】—— 享元模式Flyweight
- 【设计模式】—— 外观模式Facade
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Laravel框架下载,安装及路由操作图文详解
- PHP实用小技巧之调用录像的方法
- Laravel重定向,a链接跳转,控制器跳转示例
- Laravel 错误提示本地化的实现
- Laravel框架DB facade数据库操作详解
- laravel 解决强制跳转 https的问题
- 在laravel中实现将查询的对象转换为多维数组的函数
- 在Laravel 中实现是否关注的示例
- Laravel框架查询构造器常见用法总结
- laravel 解决多库下的DB::transaction()事务失效问题
- laravel 实现上传图片到本地和前台访问示例
- laravel框架模型中非静态方法也能静态调用的原理分析
- Laravel 5.2 文档 数据库 —— 起步介绍
- laravel csrf排除路由,禁止,关闭指定路由的例子
- thinkphp框架类库扩展操作示例