Android封装MVP实现登录注册功能
作者:赢le 时间:2021-06-14 20:45:08
本文实例为大家分享了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();
}
}
来源:http://blog.csdn.net/qq_38259132/article/details/78243760
标签:Android,MVP,登录,注册
0
投稿
猜你喜欢
Android 源码浅析RecyclerView ItemAnimator
2022-04-20 19:47:41
Java设计模式之观察者模式_动力节点Java学院整理
2022-01-14 12:27:47
java Spring Boot 配置redis pom文件操作
2022-01-25 20:57:13
Java三种IO模型原理实例详解
2022-05-20 02:36:37
一文看懂JAVA设计模式之工厂模式
2023-11-27 02:30:54
Android短信验证码自动填充功能
2023-11-25 00:04:20
Java单元测试Powermockito和Mockito使用总结
2021-11-12 14:59:07
浅谈Unity脚本生命周期与执行顺序
2022-05-22 00:47:34
深入理解Java基础之try-with-resource语法糖
2022-12-03 08:17:43
C#在foreach遍历删除集合中元素的三种实现方法
2022-05-28 12:22:50
c#如何实现接口事件
2023-10-02 18:31:28
Java实现文件批量重命名具体实例
2023-04-07 15:41:20
java获取整点与凌晨的时间戳
2022-11-10 20:41:58
多线程如何解决for循环效率的问题
2023-12-02 08:31:55
springboot自定义异常视图过程解析
2023-06-29 09:44:36
Java上转型和下转型对象
2021-07-11 13:37:47
c# 类成员初始化顺序的特殊情况
2021-07-04 18:04:45
Java实现单例模式的五种方法介绍
2022-10-20 17:32:56
Java字节码中jvm实例用法
2023-08-08 05:25:09
详解C# 中的正则表达式运用
2023-04-20 06:35:03