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