登录
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);
}
}