/****model层,使用OK连接数据,没封装********/
public class MainModel { public void login(final String account,String password,final ILoginModelCallback iLoginModelCallback){ OkHttpClient okHttpClient = new OkHttpClient.Builder().build(); FormBody formBody = new FormBody.Builder() .add("mobile", account) .add("password", password) .build(); final Request request = new Request.Builder() .url("https://www.zhaoapi.cn/user/login ") .post(formBody) .build(); Call call = okHttpClient.newCall(request); call.enqueue(new Callback() {@Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { String json = response.body().string(); Log.d("model","数据"+json); Gson gson = new Gson(); MainBean mainBean = gson.fromJson(json, MainBean.class); String code = mainBean.getCode(); String msg = mainBean.getMsg(); if ("0".equalsIgnoreCase(code)){ if (iLoginModelCallback!=null){ iLoginModelCallback.getcuseccd(mainBean); }else{ if (iLoginModelCallback!=null){ iLoginModelCallback.geterror(msg); } } } } }); } public interface ILoginModelCallback{ void getcuseccd(MainBean mainBean); void geterror(String error); } }
/******Presenter层**********/
public class LoginPresenter {
private final LoginModel mLoginModel;
ILoginView mLoginView;
public LoginPresenter(ILoginView loginView) {
mLoginView = loginView;
mLoginModel = new LoginModel();
}
public void login(String account, String password) {
//逻辑处理
if(account ==null){
if (mLoginView != null) {
mLoginView.onLoginFaild("手机号不能为空");
}
return;
}
mLoginModel.login(account, password, new LoginModel.ILoginModelCallback() {
@Override
public void onLoginSuccess(LoginBean loginBean) {
if (mLoginView != null) {
mLoginView.onLoginSuccess(loginBean);
}
}
@Override
public void onLoginFaild(String error) {
if (mLoginView != null) {
mLoginView.onLoginFaild(error);
}
}
});
}
}
public class LoginActivity extends AppCompatActivity implements View.OnClickListener, ILoginView {
private LoginPresenter mLoginPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViewById(R.id.login).setOnClickListener(this);
mLoginPresenter = new LoginPresenter(this);
}
//登陆
@Override
public void onClick(View v) {
mLoginPresenter.login("15501186523","0123456");
}
@Override
public void onLoginSuccess(final LoginBean loginBean) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(LoginActivity.this,"登陆成功 :" +loginBean.getData().getMobile(),Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onLoginFaild(final String error) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(LoginActivity.this,"登陆失败 : " +error,Toast.LENGTH_LONG).show();
}
});
}
}