mvp模式下实现登录小dem

首先创建bean类,提供get  set 方法

public class User {
    public String name;
    public String pass;

    public User(String name, String pass) {
        this.name = name;
        this.pass = pass;
    }

    public String getName() {
        return name;
    }

    public String getPass() {
        return pass;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }
}
接下来建3个包  view包  presenter包  model包
每创建一个类都要有对应的接口

view包  

public interface Main_interface {

    String getName();
    String getPass();

    void showLoginSuccess(User user);
    void showLoginFailed(String s);

}


public class MainActivity extends AppCompatActivity implements View.OnClickListener,Main_interface{
    private EditText ed_name,ed_pass;
    private Button login,register;
    private Login_presenter_interface lpi;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        lpi=new Login_presenter_class(this);
        //找控件
        initView();

    }

    private void initView() {
        ed_name= (EditText) findViewById(R.id.ed_name);
        ed_pass= (EditText) findViewById(R.id.ed_pass);
        findViewById(R.id.login).setOnClickListener(this);
        findViewById(R.id.register).setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.login:
                lpi.login();
                break;
            case R.id.register:
                break;
        }
    }

    @Override
    public String getName() {
        return ed_name.getText().toString();
    }

    @Override
    public String getPass() {
        return ed_pass.getText().toString();
    }

    @Override
    public void showLoginSuccess(User user) {
        Toast.makeText(this,"user: "+user.getName(),Toast.LENGTH_SHORT).show();
    }

    @Override
    public void showLoginFailed(String s) {
        Toast.makeText(this,s,Toast.LENGTH_SHORT).show();
    }
}

model包

public interface Login_interface {

    void login(String name,String pass,LoginListener loginlistener);

    interface LoginListener {
        void loginSuccess(User user);
        void loginFailed(String s);
    }

}

public class Login_class implements Login_interface {
    @Override
    public void login(final String name, final String pass, final LoginListener loginlistener) {
       new Handler().postDelayed(new Runnable() {
           @Override
           public void run() {
               boolean errer=false;
               if(TextUtils.isEmpty(name)){
                   loginlistener.loginFailed("用户名不能为空");
                   errer=true;
               }
               if(TextUtils.isEmpty(pass)){
                   loginlistener.loginFailed("密码不能为空");
                   errer=true;
               }
               if(!errer){
                   loginlistener.loginSuccess(new User(name,pass));
               }
           }
       },2000);
    }
}

presenter包

public interface Login_presenter_interface {

    void login();

}

public class Login_presenter_class implements Login_presenter_interface {

    private Login_class lc;
    private Main_interface mi;

    public Login_presenter_class(Main_interface mi) {
        this.mi = mi;
        lc = new Login_class();
    }

    @Override
    public void login() {
        lc.login(mi.getName(), mi.getPass(), new Login_interface.LoginListener() {
            @Override
            public void loginSuccess(User user) {
                mi.showLoginSuccess(user);
            }

            @Override
            public void loginFailed(String s) {
                mi.showLoginFailed(s);
            }
        });
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值