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

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值