MVP
来源:互联网 发布:火凤凰云计算拖欠工资 编辑:程序博客网 时间:2024/06/05 22:38
//HttpUtils导入OK包
public class HttpUtils { private final OkHttpClient okHttpClient; private static HttpUtils httpUtils; private HttpUtils(){ okHttpClient = new OkHttpClient.Builder() .addInterceptor(new LoggingInterceptor()) .connectTimeout(5, TimeUnit.SECONDS) .readTimeout(5, TimeUnit.SECONDS) .writeTimeout(5, TimeUnit.SECONDS) .build();} public static HttpUtils getHttpUtil(){ if(httpUtils==null){ synchronized (HttpUtils.class){ if(httpUtils==null){ httpUtils = new HttpUtils(); } } } return httpUtils; } public void doPost(String url, Map<String,String> params, Callback callback){ FormBody.Builder builder=new FormBody.Builder(); for(Map.Entry<String,String> entry:params.entrySet()){ builder.add(entry.getKey(),entry.getValue()); } FormBody build = builder.build(); Request build1 = new Request.Builder().url(url).post(build).build(); okHttpClient.newCall(build1).enqueue(callback); }}
public interface OnNetListener { public void onSuccess(String str); public void onFailure(Exception e);}
//model层ILoginModel
public interface ILoginModel {
public void login(String url, OnNetListener onNetListener);
}
public void login(String url, OnNetListener onNetListener);
}
//model层LoginModel
public class LoginModel implements ILoginModel{
@Override
public void login(String url, final OnNetListener onNetListener) {
HttpUtils.getHttpUtils().doGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
//失败
onNetListener.onFailure(e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
//请求成功
onNetListener.onSuccess(response.body().string());
}
});
}
}
@Override
public void login(String url, final OnNetListener onNetListener) {
HttpUtils.getHttpUtils().doGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
//失败
onNetListener.onFailure(e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
//请求成功
onNetListener.onSuccess(response.body().string());
}
});
}
}
//model层IRegister
public interface IRegister {
public void register(String url, OnNetListener onNetListener);
}
public void register(String url, OnNetListener onNetListener);
}
//model层Register
public class Register implements IRegister{
@Override
public void register(String url, final OnNetListener onNetListener) {
HttpUtils.getHttpUtils().doGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
onNetListener.onFailure(e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
onNetListener.onSuccess(response.body().string());
}
});
}
}
@Override
public void register(String url, final OnNetListener onNetListener) {
HttpUtils.getHttpUtils().doGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
onNetListener.onFailure(e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
onNetListener.onSuccess(response.body().string());
}
});
}
}
//presenter层LoginPresenter
public class LoginPresenter {
private final LoginModel loginModel;
private IMainActivty iMainActivty;
public LoginPresenter(IMainActivty iMainActivty){
//创建Model层对象
loginModel = new LoginModel();
this.iMainActivty=iMainActivty;
}
public void login(){
String urlStr="http://120.27.23.105/user/login?mobile=%s&password=%s";
String phone=iMainActivty.getPhone();
String pwd=iMainActivty.getPwd();
String url=String.format(urlStr,phone,pwd);
loginModel.login(url, new OnNetListener() {
@Override
public void onSuccess(String str) {
iMainActivty.show(str);
iMainActivty.toSecond();
}
@Override
public void onFailure(Exception e) {
}
});
}
}
private final LoginModel loginModel;
private IMainActivty iMainActivty;
public LoginPresenter(IMainActivty iMainActivty){
//创建Model层对象
loginModel = new LoginModel();
this.iMainActivty=iMainActivty;
}
public void login(){
String urlStr="http://120.27.23.105/user/login?mobile=%s&password=%s";
String phone=iMainActivty.getPhone();
String pwd=iMainActivty.getPwd();
String url=String.format(urlStr,phone,pwd);
loginModel.login(url, new OnNetListener() {
@Override
public void onSuccess(String str) {
iMainActivty.show(str);
iMainActivty.toSecond();
}
@Override
public void onFailure(Exception e) {
}
});
}
}
//RegisterPresenter
public class RegisterPresenter {
private IMainActivty iMainActivty;
private IRegister iRegister;
public RegisterPresenter(IMainActivty iMainActivty){
iRegister=new Register();
this.iMainActivty=iMainActivty;
}
public void register(){
String urlStr="http://120.27.23.105/user/reg?mobile=%s&password=%s";
String phone=iMainActivty.getPhone();
String pwd=iMainActivty.getPwd();
String url=String.format(urlStr,phone,pwd);
iRegister.register(url, new OnNetListener() {
@Override
public void onSuccess(String str) {
iMainActivty.show(str);
}
@Override
public void onFailure(Exception e) {
}
});
}
}
private IMainActivty iMainActivty;
private IRegister iRegister;
public RegisterPresenter(IMainActivty iMainActivty){
iRegister=new Register();
this.iMainActivty=iMainActivty;
}
public void register(){
String urlStr="http://120.27.23.105/user/reg?mobile=%s&password=%s";
String phone=iMainActivty.getPhone();
String pwd=iMainActivty.getPwd();
String url=String.format(urlStr,phone,pwd);
iRegister.register(url, new OnNetListener() {
@Override
public void onSuccess(String str) {
iMainActivty.show(str);
}
@Override
public void onFailure(Exception e) {
}
});
}
}
//view
public interface IMainActivty {
//获取手机号
public String getPhone();
//获取密码
public String getPwd();
//显示登录成功后的数据
public void show(String str);
//跳转
public void toSecond();
}
//mainAcativty
public class MainActivity extends AppCompatActivity implements View.OnClickListener ,IMainActivty{
/**
* 请输入账号
*/
private EditText mEtAccount;
/**
* 请输入密码
*/
private EditText mEtPwd;
/**
* 登录
*/
private Button mBtLogin;
/**
* 注册
*/
private Button mBtRegister;
private LinearLayout mActivityMain;
private LoginPresenter loginPresenter1;
private RegisterPresenter registerPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loginPresenter1 = new LoginPresenter(this);
registerPresenter = new RegisterPresenter(this);
MainPresenter mainPresenter = new MainPresenter(this);
initView();
}
private void initView() {
mEtAccount = (EditText) findViewById(R.id.et_account);
mEtPwd = (EditText) findViewById(R.id.et_pwd);
mBtLogin = (Button) findViewById(R.id.bt_login);
mBtLogin.setOnClickListener(this);
mBtRegister = (Button) findViewById(R.id.bt_register);
mBtRegister.setOnClickListener(this);
mActivityMain = (LinearLayout) findViewById(R.id.activity_main);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
default:
break;
case R.id.bt_login:
loginPresenter1.login();
break;
case R.id.bt_register:
registerPresenter.register();
break;
}
}
@Override
public String getPhone() {
return mEtAccount.getText().toString().trim();
}
@Override
public String getPwd() {
return mEtPwd.getText().toString().trim();
}
@Override
public void show(final String str) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();
}
});
}
@Override
public void toSecond() {
/* //登录成功后跳转
Intent intent = new Intent(MainActivity.this, Success.class);
startActivity(intent);*/
}
}
/**
* 请输入账号
*/
private EditText mEtAccount;
/**
* 请输入密码
*/
private EditText mEtPwd;
/**
* 登录
*/
private Button mBtLogin;
/**
* 注册
*/
private Button mBtRegister;
private LinearLayout mActivityMain;
private LoginPresenter loginPresenter1;
private RegisterPresenter registerPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loginPresenter1 = new LoginPresenter(this);
registerPresenter = new RegisterPresenter(this);
MainPresenter mainPresenter = new MainPresenter(this);
initView();
}
private void initView() {
mEtAccount = (EditText) findViewById(R.id.et_account);
mEtPwd = (EditText) findViewById(R.id.et_pwd);
mBtLogin = (Button) findViewById(R.id.bt_login);
mBtLogin.setOnClickListener(this);
mBtRegister = (Button) findViewById(R.id.bt_register);
mBtRegister.setOnClickListener(this);
mActivityMain = (LinearLayout) findViewById(R.id.activity_main);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
default:
break;
case R.id.bt_login:
loginPresenter1.login();
break;
case R.id.bt_register:
registerPresenter.register();
break;
}
}
@Override
public String getPhone() {
return mEtAccount.getText().toString().trim();
}
@Override
public String getPwd() {
return mEtPwd.getText().toString().trim();
}
@Override
public void show(final String str) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this,str,Toast.LENGTH_LONG).show();
}
});
}
@Override
public void toSecond() {
/* //登录成功后跳转
Intent intent = new Intent(MainActivity.this, Success.class);
startActivity(intent);*/
}
}