MVP登录

public class Api {
    public static  final  String DENGLU_PATH = "http://120.27.23.105/";
}
 
 
 
 
public interface ApiServer {
    @FormUrlEncoded
    @POST("user/login")
    Observable<dengluBean> login(@Field("mobile") String mobile, @Field("password") String password);
}

 
 
 
 
public interface Iview {
    /**
     * 登录成功
     */
    void onLoginSuccess();

    /**
     * 登录失败
     *
     * @param error
     */
    void onLoginFailed(String error);
}

 
 
public interface Imodel {
    void login(User user);
}

 
 
public class UserMode implements Imodel {

    private String code;
    private OnFinish onFinish;

    public interface OnFinish{
        void OnFinishListener(dengluBean dengluBean);
    }
    public void setOnFinish(OnFinish finish){
        this.onFinish=finish;
    }
    @Override
    public void login(User user) {
//        if (dengluBean.getCode().equals("0")){
//            return "true";
//        }else{
//            return "false";
//        }
        Retrofit retrofit = new Retrofit.Builder().baseUrl(Api.DENGLU_PATH)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .build();
        ApiServer apiService = retrofit.create(ApiServer.class);
//        Map<String ,String> map = new HashMap<>();
//        map.put("mobile",user.getMobile());
//        map.put("password",user.getPassword());
        Observable<dengluBean> home = apiService.login(user.getMobile(),user.getPassword());
        home.subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<dengluBean>() {
                    @Override
                    public void onCompleted() {
                    }
                    @Override
                    public void onError(Throwable e) {
                    }
                    @Override
                    public void onNext(dengluBean dengluBean) {

                        Log.e("main","code:"+dengluBean.getCode());
                        onFinish.OnFinishListener(dengluBean);

                    }
                });
    }
}

 
 
public class UserPresenter implements UserMode.OnFinish{
    private final Iview userView;
    private final UserMode userMode;

    public UserPresenter(Iview iview) {
        this.userView = iview;
        this.userMode = new UserMode();
        userMode.setOnFinish(this);
    }
    public void login(final User user) {
        userMode.login(user);
    }




    @Override
    public void OnFinishListener(dengluBean dengluBean) {
        String code = dengluBean.getCode();
        if (code.equals("0")) {
            userView.onLoginSuccess();
        } else {
            userView.onLoginFailed("shibai");

        }
    }
}

 
 
public class User {
    private String mobile;
    private String password;

    public User(String mobile, String password) {
        this.mobile = mobile;
        this.password = password;
    }

    public User() {
    }

    @Override
    public String toString() {
        return "User{" +
                "mobile='" + mobile + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

 
 
public class dengluBean {

    /**
     * msg : 登录成功
     * code : 0
     * data : {"age":null,"appkey":null,"appsecret":null,"createtime":"2017-11-13T15:30:37","email":null,"gender":0,"icon":null,"mobile":"15726649477","money":0,"nickname":null,"password":"123456","token":"7D7681906D11EB7DA06B04362688EB74","uid":983,"username":"15726649477"}
     */

    private String msg;
    private String code;

    public dengluBean(String msg, String code) {
        this.msg = msg;
        this.code = code;
    }

    public dengluBean() {
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    @Override
    public String toString() {
        return "dengluBean{" +
                "msg='" + msg + '\'' +
                ", code='" + code + '\'' +
                '}';
    }
}

 
 
public class Denglu_yemian extends AppCompatActivity implements Iview {
    //初始化属性
    @BindView(R.id.btn_denglu)
    Button btnDenglu;
    @BindView(R.id.tv_register)
    TextView tvRegister;
    @BindView(R.id.et_userName)
    EditText etUserName;
    @BindView(R.id.et_password)
    EditText etPassword;
    private UserPresenter userPresenter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_denglu_yemian);
        ButterKnife.bind(this);
        userPresenter = new UserPresenter(this);

    }

    //登录按钮和注册的点击事件
    @OnClick({R.id.btn_denglu, R.id.tv_register})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.btn_denglu:
                String username = etUserName.getText().toString().trim();
                String password = etPassword.getText().toString().trim();

                if (TextUtils.isEmpty(username) || TextUtils.isEmpty(password)) {
                    Toast.makeText(getApplicationContext(), "账号或密码不能为空", Toast.LENGTH_SHORT).show();
                    return;
                }

                userPresenter.login(new User(username, password));

                break;
            case R.id.tv_register:
                Intent intent = new Intent(Denglu_yemian.this, Register_yemian.class);
                startActivity(intent);

                break;
        }
    }


    @Override
    public void onLoginSuccess() {
        Toast.makeText(getApplicationContext(), "登录成功:", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onLoginFailed(String error) {
        Toast.makeText(getApplicationContext(), "登录失败:" + error, Toast.LENGTH_SHORT).show();
    }
}

 
 
 
 
 

猜你喜欢

转载自blog.csdn.net/mydtudysy/article/details/78524105