封装MVP 实现登录注册功能

来源:互联网 发布:windows7安装apache 编辑:程序博客网 时间:2024/05/16 17:49

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();    }}

这里写图片描述

原创粉丝点击