登录
package com.example.dengzhu;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.example.dengzhu.bean.LogBean;
import com.example.dengzhu.cantract.ShowCantract;
import com.example.dengzhu.persenter.ShowPersenter;
import com.google.gson.Gson;

import java.util.HashMap;

public class MainActivity extends AppCompatActivity implements ShowCantract.Cview {

private EditText etPhone;
private EditText etPwd;
private Button login;
private ShowPersenter showPersenter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
}

private void initView() {
    etPhone = (EditText) findViewById(R.id.et_phone);
    etPwd = (EditText) findViewById(R.id.et_pwd);
    login = (Button) findViewById(R.id.login);

    showPersenter = new ShowPersenter(this);
    login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            login.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String zhang = etPhone.getText().toString();
                    String pwds = etPwd.getText().toString();
                    HashMap<String, String> persentr = new HashMap<>();
                    persentr.put("mobile",zhang);
                    persentr.put("password",pwds);

                    if (showPersenter!=null){
                        showPersenter.showlog(persentr);
                    }
                }
            });
        }
    });
}

@Override
public void Success(String result) {
    LogBean logBean = new Gson().fromJson(result, LogBean.class);
    Toast.makeText(MainActivity.this,logBean.getMsg(),Toast.LENGTH_SHORT).show();

    if (logBean.getMsg().equals("登陆成功")){
        Toast.makeText(MainActivity.this,logBean.getMsg(),Toast.LENGTH_SHORT).show();
    }

}

@Override
public void FailUre(String msg) {
    Toast.makeText(MainActivity.this,msg,Toast.LENGTH_SHORT).show();
}

@Override
public void Files(String error) {
    Toast.makeText(MainActivity.this,error,Toast.LENGTH_SHORT).show();
}

public void reg(View view) {
    Intent intent = new Intent(MainActivity.this,Main2Activity.class);
    startActivity(intent);
}

}
注册
package com.example.dengzhu;

import android.content.Intent;
import android.media.ToneGenerator;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.example.dengzhu.bean.LogBean;
import com.example.dengzhu.bean.RegBean;
import com.example.dengzhu.cantract.ShowCantract;
import com.example.dengzhu.persenter.ShowPersenter;
import com.google.gson.Gson;

import java.util.HashMap;

public class Main2Activity extends AppCompatActivity implements ShowCantract.Cview {

private EditText etPhone2;
private EditText etPwd2;
private Button reg;
private ShowPersenter showPersenter;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    initView();
}

private void initView() {
    etPhone2 = (EditText) findViewById(R.id.et_phone2);
    etPwd2 = (EditText) findViewById(R.id.et_pwd2);
    reg = (Button) findViewById(R.id.reg);

    showPersenter = new ShowPersenter(this);
    reg.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String zhang = etPhone2.getText().toString();
            String pwds = etPwd2.getText().toString();
            HashMap<String, String> persentr = new HashMap<>();
            persentr.put("mobile",zhang);
            persentr.put("password",pwds);

            if (showPersenter!=null){
                showPersenter.showpreg(persentr);
            }
        }
    });
}

@Override
public void Success(String result) {

    RegBean regBean = new Gson().fromJson(result, RegBean.class);
    Toast.makeText(Main2Activity.this,regBean.getMsg(),Toast.LENGTH_SHORT).show();

    if (regBean.getMsg().equals("注册成功")){
        Toast.makeText(Main2Activity.this,regBean.getMsg(),Toast.LENGTH_SHORT).show();
    }
    Intent intent = new Intent(Main2Activity.this,MainActivity.class);
    startActivity(intent);
}

@Override
public void FailUre(String msg) {
    Toast.makeText(Main2Activity.this,msg,Toast.LENGTH_SHORT).show();
}

@Override
public void Files(String error) {
    Toast.makeText(Main2Activity.this,error,Toast.LENGTH_SHORT).show();
}

public void go_login(View view) {
    Intent intent = new Intent(Main2Activity.this,MainActivity.class);
    startActivity(intent);
}

}
p层
package com.example.dengzhu.persenter;

import com.example.dengzhu.cantract.ShowCantract;
import com.example.dengzhu.model.ModelCallBack;
import com.example.dengzhu.model.ShowModel;
import com.example.dengzhu.utils.ValidaUtils;

import java.util.HashMap;

public class ShowPersenter extends ShowCantract.Cpersenter {

private ShowCantract.Cview cview;
private ShowModel model;

public ShowPersenter(ShowCantract.Cview cview) {
    this.cview = cview;
    this.model=new ShowModel();
}

@Override
public void showlog(HashMap<String, String> map) {
    String phone1 = map.get("mobile");
    if (!ValidaUtils.isChinese(phone1)){
        if (cview!=null){
            cview.Files("手机错误");
        }
    }

    model.showlog(map, new ModelCallBack() {
        @Override
        public void Success(String result) {
            if (cview!=null){
                cview.Success(result);
            }
        }

        @Override
        public void FailUre(String msg) {
            if (cview!=null){
                cview.FailUre(msg);
            }
        }
    });
}

@Override
public void showpreg(HashMap<String, String> map) {
    String phone2 = map.get("mobile");
    if (!ValidaUtils.isChinese(phone2)){
        if (cview!=null){
            cview.Files("手机号错误");
        }
    }

    model.showreg(map, new ModelCallBack() {
        @Override
        public void Success(String result) {
            if (cview!=null){
                cview.Success(result);
            }
        }

        @Override
        public void FailUre(String msg) {
            if (cview!=null){
                cview.FailUre(msg);
            }
        }
    });
}

}
m层
package com.example.dengzhu.model;

import android.os.Handler;

import com.example.dengzhu.api.API;
import com.example.dengzhu.cantract.ShowCantract;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.logging.HttpLoggingInterceptor;

public class ShowModel implements ShowCantract.Cmodel {

private Handler handler=new Handler();

@Override
public void showlog(HashMap<String, String> map, final ModelCallBack modelCallBack) {
    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.BASIC);
    OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .addInterceptor(interceptor)
            .build();

    FormBody.Builder builder = new FormBody.Builder();

    for (Map.Entry<String, String> pesent : map.entrySet()) {
        builder.add(pesent.getKey(),pesent.getValue());
    }
    Request request = new Request.Builder().post(builder.build()).url(API.USER_LOGIN).build();
    okHttpClient.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
              if (modelCallBack!=null){
                  handler.post(new Runnable() {
                      @Override
                      public void run() {
                          modelCallBack.FailUre("请求失败");
                      }
                  });

              }
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            final String persenter = response.body().string();
            if (modelCallBack!=null){
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        modelCallBack.Success(persenter);
                    }
                });

            }

        }
    });
}

@Override
public void showreg(HashMap<String, String> map, final ModelCallBack modelCallBack) {
    HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
    interceptor.setLevel(HttpLoggingInterceptor.Level.BASIC);
    OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .addInterceptor(interceptor)
            .build();

    FormBody.Builder builder = new FormBody.Builder();

    for (Map.Entry<String, String> pesent : map.entrySet()) {
        builder.add(pesent.getKey(),pesent.getValue());
    }
    Request request = new Request.Builder().post(builder.build()).url(API.USER_REG).build();

    okHttpClient.newCall(request).enqueue(new Callback() {
        @Override
        public void onFailure(Call call, IOException e) {
            if (modelCallBack!=null){
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        modelCallBack.FailUre("请求失败");
                    }
                });

            }
        }

        @Override
        public void onResponse(Call call, Response response) throws IOException {
            final String persenter = response.body().string();
            if (modelCallBack!=null){
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        modelCallBack.Success(persenter);
                    }
                });

            }
        }
    });
}

}
契约类
package com.example.dengzhu.cantract;

import com.example.dengzhu.model.ModelCallBack;
import com.example.dengzhu.model.ShowModel;

import java.lang.ref.SoftReference;
import java.util.HashMap;

public interface ShowCantract {

//P层
public abstract class Cpersenter{
    public abstract void showlog(HashMap<String,String> map);
    public abstract void showpreg(HashMap<String,String> map);

}

//M层
public interface Cmodel{
    public void showlog(HashMap<String,String> map, ModelCallBack modelCallBack);
    public void showreg(HashMap<String,String> map, ModelCallBack modelCallBack);
}

//V层
public interface Cview{
    void Success(String result);
    void FailUre(String msg);
    void Files(String error);
}

}

猜你喜欢

转载自blog.csdn.net/weixin_43250402/article/details/86561310