登录注册mvp模式

来源:互联网 发布:淘宝拍视频用什么软件 编辑:程序博客网 时间:2024/05/22 03:25

1、首先显示个人信息页面

public class LiginSuccessfulActivity extends AppCompatActivity {    private SharedPreferences sp;    private Button login_but;    private boolean flag;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_ligin);        ImageView touxiang = (ImageView) findViewById(R.id.login_touxiang);        TextView login_nickname = (TextView) findViewById(R.id.login_nickname);        TextView login_phone = (TextView) findViewById(R.id.login_phone);        login_but = (Button) findViewById(R.id.login_but);        Button login_shop = (Button) findViewById(R.id.login_shop);        String username = getIntent().getStringExtra("username");        String pwd = getIntent().getStringExtra("pwd");        sp = getSharedPreferences("confing", MODE_PRIVATE);        flag = sp.getBoolean("flag", false);       // login_but.setEnabled(true);        if (flag == true) {            login_but.setText("退出登录");            //登录成功取出手机号和密码            //密码            login_nickname.setText(pwd);            //手机号            login_phone.setText(username);        } else {            login_but.setText("未登录");            login_nickname.setText("未登录");            login_phone.setText("未登录");        }        login_but.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                flag = false;                startActivity(new Intent(LiginSuccessfulActivity.this, MainActivity.class));            }        });        login_shop.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                startActivity(new Intent(LiginSuccessfulActivity.this, GoodsActivity.class));            }        });    }}

2、进入登录注册界面

//登录界面的LoginOrRegisterViewpublic class MainActivity extends AppCompatActivity implements LoginOrRegisterView {    private LoginOrRegisterPresenter loginOrRegisterPresenter;    private EditText ed_username;    private EditText ed_pwd;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ed_username = (EditText) findViewById(R.id.ed_username);        ed_pwd = (EditText) findViewById(R.id.ed_pwd);        Button login = (Button) findViewById(R.id.login);        Button register = (Button) findViewById(R.id.register);        //登录界面的prensenter        loginOrRegisterPresenter = new LoginOrRegisterPresenter(this);        //注册按钮        register.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                startActivity(new Intent(MainActivity.this, RegisterActivity.class));            }        });        //登录按钮        login.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                loginOrRegisterPresenter.getLogin(MainActivity.this, ed_username.getText().toString(), ed_pwd.getText().toString());            }        });    }    @Override    public void usernamePwdnull() {        Toast.makeText(MainActivity.this, "用户名或密码输入有误", Toast.LENGTH_SHORT).show();    }    @Override    public void succenful(final JavaBean javaBean) {        runOnUiThread(new Runnable() {            @Override            public void run() {                Toast.makeText(MainActivity.this, "登陆成功", Toast.LENGTH_SHORT).show();                Intent intent = new Intent(MainActivity.this, LiginSuccessfulActivity.class);                intent.putExtra("username", javaBean.getData().getUsername());                intent.putExtra("pwd", javaBean.getData().getPassword());                startActivity(intent);            }        });    }    @Override    public void loginEroo() {        Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show();    }}

2.1:点击注册按钮

public class RegisterActivity extends AppCompatActivity implements RegisterView{    private RegisterPresenter presenter;    private EditText re_username;    private EditText re_pwd;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_register);        Button  re_login= (Button) findViewById(R.id.re_login);        re_username = (EditText) findViewById(R.id.re_username);        re_pwd = (EditText) findViewById(R.id.re_pwd);        presenter = new RegisterPresenter(RegisterActivity.this,this);        //注册按钮        re_login.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                if(re_username.length()<11&&re_username.length()>11)                {                    Toast.makeText(RegisterActivity.this,"请输入正确的手机号!",Toast.LENGTH_SHORT).show();                }                if(re_pwd.length()<6)                {                    Toast.makeText(RegisterActivity.this,"密码不能小于6位!",Toast.LENGTH_SHORT).show();                }                presenter.getDate(re_username.getText().toString(),re_pwd.getText().toString());            }        });    }    @Override    public void reGisterusernamenull() {        Toast.makeText(this, "手机号输入有误!", Toast.LENGTH_SHORT).show();    }    @Override    public void reGisterpwdnull() {        Toast.makeText(this, "密码输入有误!", Toast.LENGTH_SHORT).show();    }    @Override    public void reGistersuccenful() {                runOnUiThread(new Runnable() {                    @Override                    public void run() {                        Toast.makeText(RegisterActivity.this,"注册成功",Toast.LENGTH_SHORT).show();                        finish();                    }                });    }    @Override    public void reGisterEroo() {        Toast.makeText(this,"注册失败",Toast.LENGTH_SHORT).show();    }    @Override    public void reGisterPhon() {    }    @Override    public void reGisterPwd() {    }}

2.1.2:注册的Presenter层



public class RegisterPresenter {
    private RegisterView view;
    private Context context;
    private RegisterModel model;


    public RegisterPresenter(Context context, RegisterView view) {
        this.view = view;
        this.model = new RegisterModel();
        this.context = context;
    }


    public void getDate(final String name, final String pwd) {
        model.getData(context, name, pwd, new RegisterLinserter() {
            @Override
            public void setRegisSuccssful() {
                view.reGistersuccenful();
            }
            @Override
            public void setRegisEorr() {
                view.reGisterEroo();
            }

            @Override
            public void setRegisMobileNull() {
            }

            @Override
            public void setRegisPwdNull() {
                view.reGisterpwdnull();

            }
        });
    }
}


2.1.2:注册的view层


public interface RegisterView {
     //注册
    public  void reGisterusernamenull();
    public void reGisterpwdnull();
    public  void reGistersuccenful();
    public  void reGisterEroo();

}


2.1.3:注册的Model层



public class RegisterModel {


    public void getData(final Context context, final String name, final String pwd, final RegisterLinserter linserter) {
        if (TextUtils.isEmpty(name)) {
            linserter.setRegisMobileNull();


        }
        if (TextUtils.isEmpty(pwd)) {
            linserter.setRegisPwdNull();


        }
        Map<String, String> map = new HashMap<>();
        map.put("mobile", name);
        map.put("password", pwd);
        //请求数据
        OkHttp3Utils.doPost("http://120.27.23.105/user/reg", map, new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                linserter.setRegisEorr();
            }


            @Override
            public void onResponse(Call call, Response response) throws IOException {


                String string = response.body().string();
                Gson gson = new Gson();
                JavaBean javaBean = gson.fromJson(string, JavaBean.class);
                String code = javaBean.getCode();
                if ("0".equals(code)) {
                    linserter.setRegisSuccssful();


                }
            }
        });
    }
}


2.1.4:Model层对应的接口


public interface RegisterLinserter {
    public  void setRegisSuccssful();
    public  void setRegisEorr();
    public  void setRegisMobileNull();
    public  void setRegisPwdNull();
}


2.2.0:点击登录按钮,由于登录按钮不需要跳转新的Activity,直接在点击事件中完成

登录的Presenter层

public class LoginOrRegisterPresenter {
    private LoginOrRegisterView view;
    private LoginOrRegisterModel model;


    public LoginOrRegisterPresenter(LoginOrRegisterView view) {
        this.view = view;
        this.model = new LoginOrRegisterModel();
    }


    public void getLogin(Context context, String name, String pwd) {
        model.getLogin(context, name, pwd, new LoginLister() {
            @Override
            public void setLoginSuccssful(JavaBean javaBean) {
                view.succenful(javaBean);
            }


            @Override
            public void setLoginEorr() {
                view.loginEroo();
            }

            @Override
            public void setLoginMobilePwdNull() {
                view.usernamePwdnull();
            }
        });
    }
}

2.2.1:登录的view层



public interface LoginOrRegisterView {
    //密码用户名为空
    public  void usernamePwdnull();
    public  void succenful(JavaBean javaBean);
    public  void loginEroo();

}


2.2.2:登录的Model层

public class LoginOrRegisterModel {    private SharedPreferences sp;    public void getLogin(Context context, final String name, final String pwd, final LoginLister loginLister) {        sp = context.getSharedPreferences("confing", Context.MODE_PRIVATE);        Map<String, String> map = new HashMap<>();        map.put("mobile", name);        map.put("password", pwd);        OkHttp3Utils.doPost("http://120.27.23.105/user/login", map, new Callback() {            @Override            public void onFailure(Call call, IOException e) {                loginLister.setLoginEorr();            }            @Override            public void onResponse(Call call, Response response) throws IOException {                String result = response.body().string();                Gson gson = new Gson();                JavaBean loginJavaBean = gson.fromJson(result, JavaBean.class);                String code = loginJavaBean.getCode();                if ("0".equals(code)) {                    loginLister.setLoginSuccssful(loginJavaBean);                    SharedPreferences.Editor edit = sp.edit();                    edit.putBoolean("flag", true);                    edit.putString("modile", name);                    edit.putString("pwd", pwd);                    edit.commit();                }            }        });    }}

2.2.3:Model层对应的接口


public interface LoginLister {    public void setLoginSuccssful(JavaBean javaBean);    public void setLoginEorr();    public void setLoginMobilePwdNull();}





原创粉丝点击