登录注册

bean类

package bawei.com.myjddemo20180418.show.mine.login.bean;

/**
* Created by zhangjunyou on 2018/4/24.
*/

public class LoginBean {

/**
* msg : 登录成功
* code : 0
* data : {"age":null,"appkey":"3810e90242942ccc","appsecret":"CCC86F14A03DE8B7507F03584796B7D1","createtime":"2018-04-24T16:24:03","email":null,"fans":null,"follow":null,"gender":null,"icon":"https://www.zhaoapi.cn/images/1522494152236aa.jpg","latitude":null,"longitude":null,"mobile":"13813575369","money":null,"nickname":null,"password":"8F669074CAF5513351A2DE5CC22AC04C","praiseNum":null,"token":"F07AD4CFD507904EB3E05A3EEF5D9044","uid":4905,"userId":null,"username":"13813575369"}
*/

private String msg;
private String code;
private DataBean data;

public String getMsg() {
return msg;
}

public void setMsg(String msg) {
this.msg = msg;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}

public DataBean getData() {
return data;
}

public void setData(DataBean data) {
this.data = data;
}

public static class DataBean {
/**
* age : null
* appkey : 3810e90242942ccc
* appsecret : CCC86F14A03DE8B7507F03584796B7D1
* createtime : 2018-04-24T16:24:03
* email : null
* fans : null
* follow : null
* gender : null
* icon : https://www.zhaoapi.cn/images/1522494152236aa.jpg
* latitude : null
* longitude : null
* mobile : 13813575369
* money : null
* nickname : null
* password : 8F669074CAF5513351A2DE5CC22AC04C
* praiseNum : null
* token : F07AD4CFD507904EB3E05A3EEF5D9044
* uid : 4905
* userId : null
* username : 13813575369
*/

private Object age;
private String appkey;
private String appsecret;
private String createtime;
private Object email;
private Object fans;
private Object follow;
private Object gender;
private String icon;
private Object latitude;
private Object longitude;
private String mobile;
private Object money;
private Object nickname;
private String password;
private Object praiseNum;
private String token;
private int uid;
private Object userId;
private String username;

public Object getAge() {
return age;
}

public void setAge(Object age) {
this.age = age;
}

public String getAppkey() {
return appkey;
}

public void setAppkey(String appkey) {
this.appkey = appkey;
}

public String getAppsecret() {
return appsecret;
}

public void setAppsecret(String appsecret) {
this.appsecret = appsecret;
}

public String getCreatetime() {
return createtime;
}

public void setCreatetime(String createtime) {
this.createtime = createtime;
}

public Object getEmail() {
return email;
}

public void setEmail(Object email) {
this.email = email;
}

public Object getFans() {
return fans;
}

public void setFans(Object fans) {
this.fans = fans;
}

public Object getFollow() {
return follow;
}

public void setFollow(Object follow) {
this.follow = follow;
}

public Object getGender() {
return gender;
}

public void setGender(Object gender) {
this.gender = gender;
}

public String getIcon() {
return icon;
}

public void setIcon(String icon) {
this.icon = icon;
}

public Object getLatitude() {
return latitude;
}

public void setLatitude(Object latitude) {
this.latitude = latitude;
}

public Object getLongitude() {
return longitude;
}

public void setLongitude(Object longitude) {
this.longitude = longitude;
}

public String getMobile() {
return mobile;
}

public void setMobile(String mobile) {
this.mobile = mobile;
}

public Object getMoney() {
return money;
}

public void setMoney(Object money) {
this.money = money;
}

public Object getNickname() {
return nickname;
}

public void setNickname(Object nickname) {
this.nickname = nickname;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public Object getPraiseNum() {
return praiseNum;
}

public void setPraiseNum(Object praiseNum) {
this.praiseNum = praiseNum;
}

public String getToken() {
return token;
}

public void setToken(String token) {
this.token = token;
}

public int getUid() {
return uid;
}

public void setUid(int uid) {
this.uid = uid;
}

public Object getUserId() {
return userId;
}

public void setUserId(Object userId) {
this.userId = userId;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}
}



}



model接口
public interface ILoginModel {

void login(String mobile, String password, ILoginPersenter iLoginPersenter);
}

实体类

package bawei.com.myjddemo20180418.show.mine.login.model;

import com.google.gson.Gson;

import bawei.com.myjddemo20180418.netutils.Api;
import bawei.com.myjddemo20180418.netutils.OkhttpUtils;
import bawei.com.myjddemo20180418.netutils.OnNetListener;
import bawei.com.myjddemo20180418.show.mine.login.bean.LoginBean;
import bawei.com.myjddemo20180418.show.mine.login.presenter.ILoginPersenter;


public class LoginModel implements ILoginModel {
@Override
public void login(String mobile, String password, final ILoginPersenter iLoginPersenter) {
String url = Api.LOGIN_URL + "?mobile=" + mobile + "&password=" + password;

OkhttpUtils.getInstance().doGet(url, new OnNetListener() {
@Override
public void onSuccess(String result) {
LoginBean loginBean = new Gson().fromJson(result, LoginBean.class);
if ("0".equals(loginBean.getCode())) {
iLoginPersenter.onSuccess(result);
}
}

@Override
public void onFailed(Exception e) {
iLoginPersenter.onFailed(e + "");
}
});
}
}

presenter层接口
public interface ILoginPersenter {

void login(String mobile, String password);
void onFailed(String str);
void onSuccess(Object o);
void onDestory();
}
实体类
package bawei.com.myjddemo20180418.show.mine.login.presenter;

import com.google.gson.Gson;

import bawei.com.myjddemo20180418.app.MyApp;
import bawei.com.myjddemo20180418.netutils.Aerifly;
import bawei.com.myjddemo20180418.show.mine.login.bean.LoginBean;
import bawei.com.myjddemo20180418.show.mine.login.model.ILoginModel;
import bawei.com.myjddemo20180418.show.mine.login.model.LoginModel;
import bawei.com.myjddemo20180418.show.mine.login.view.ILoginActivity;


public class LoginPersenter implements ILoginPersenter {

private ILoginActivity iLoginActivity;
private ILoginModel loginModel;

public LoginPersenter(ILoginActivity iLoginActivity) {
this.iLoginActivity = iLoginActivity;
loginModel = new LoginModel();
}

@Override
public void login(String mobile, String password) {
//判断
boolean mob = Aerifly.isMobile(MyApp.context, mobile);
boolean pwd = Aerifly.isPassword(MyApp.context, password);
if (mob && pwd) {
loginModel.login(mobile, password, this);
}
}

@Override
public void onFailed(String str) {
if (null == iLoginActivity) {
return;
}
iLoginActivity.onFailed(str);
}

@Override
public void onSuccess(Object o) {
if (null == iLoginActivity) {
return;
}
String result = o.toString();
Gson g = new Gson();
LoginBean supperClass = g.fromJson(result, LoginBean.class);
String code = supperClass.getCode();
if (code.equals("0")) {
iLoginActivity.onSuccess(result);
} else {
iLoginActivity.onFailed(supperClass.getMsg());
}
}

@Override
public void onDestory() {
if (null != iLoginActivity) {
iLoginActivity = null;
}
}
}

view层接口
public interface ILoginActivity {
void onFailed(String str);
void onSuccess(Object o);
}

实体类
package bawei.com.myjddemo20180418.show.mine.login.view;

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

import com.umeng.analytics.MobclickAgent;
import com.umeng.socialize.ShareAction;
import com.umeng.socialize.UMAuthListener;
import com.umeng.socialize.UMShareAPI;
import com.umeng.socialize.UMShareListener;
import com.umeng.socialize.bean.SHARE_MEDIA;
import com.umeng.socialize.media.UMImage;
import com.umeng.socialize.media.UMWeb;

import java.util.Map;
import java.util.Set;

import bawei.com.myjddemo20180418.R;
import bawei.com.myjddemo20180418.show.mine.login.presenter.LoginPersenter;
import bawei.com.myjddemo20180418.show.mine.register.view.RegisterActivity;

public class LoginActivity extends AppCompatActivity implements View.OnClickListener, ILoginActivity {

/**
* 请输入手机号
*/
private EditText mTel;
/**
* 请输入密码
*/
private EditText mPwd;
/**
* 登录
*/
private Button mLogin;
/**
* 注册
*/
private Button mReg;
private LoginPersenter loginPersenter;


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

private void initView() {
mTel = (EditText) findViewById(R.id.tel);
mPwd = (EditText) findViewById(R.id.pwd);
mLogin = (Button) findViewById(R.id.login);
mLogin.setOnClickListener(this);
mReg = (Button) findViewById(R.id.reg);
mReg.setOnClickListener(this);

}

@Override
public void onClick(View v) {
switch (v.getId()) {
default:
break;
case R.id.login:
String mobile = mTel.getText().toString();
String password = mPwd.getText().toString();
loginPersenter.login(mobile, password);

break;
case R.id.reg:
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
startActivity(intent);
break;
}
}

@Override
public void onFailed(String str) {
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();
}


}
注册。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
bean类
package bawei.com.myjddemo20180418.show.mine.register.bean;

public class RegBean {

/**
* msg : 注册成功
* code : 0
*/

private String msg;
private String code;

public String getMsg() {
return msg;
}

public void setMsg(String msg) {
this.msg = msg;
}

public String getCode() {
return code;
}

public void setCode(String code) {
this.code = code;
}
}

model层接口
public interface IRegisterModel {
void Register(String mobile, String password, IRegisterPersenter iLoginPersenterTwo);
}
实体类
package bawei.com.myjddemo20180418.show.mine.register.model;


import com.google.gson.Gson;

import bawei.com.myjddemo20180418.netutils.Api;
import bawei.com.myjddemo20180418.netutils.OkhttpUtils;
import bawei.com.myjddemo20180418.netutils.OnNetListener;
import bawei.com.myjddemo20180418.show.mine.login.bean.LoginBean;
import bawei.com.myjddemo20180418.show.mine.register.presenter.IRegisterPersenter;


public class RegisterModel implements IRegisterModel {
@Override
public void Register(String mobile, String password, final IRegisterPersenter iRegisterPersenter) {
String url = Api.REGISTER_URL + "?mobile=" + mobile + "&password=" + password;
OkhttpUtils.getInstance().doGet(url, new OnNetListener() {
@Override
public void onSuccess(String result) {
LoginBean loginBean = new Gson().fromJson(result, LoginBean.class);
if ("0".equals(loginBean.getCode())) {
iRegisterPersenter.onSuccess(result);
}
}

@Override
public void onFailed(Exception e) {
iRegisterPersenter.onFailed(e + "");
}
});
}
}
p层
public interface IRegisterPersenter {
void login(String mobile, String password);
void onFailed(String str);
void onSuccess(Object o);

void onDestory();
}
实体类
package bawei.com.myjddemo20180418.show.mine.register.presenter;


import bawei.com.myjddemo20180418.app.MyApp;
import bawei.com.myjddemo20180418.netutils.Aerifly;
import bawei.com.myjddemo20180418.show.mine.register.model.IRegisterModel;
import bawei.com.myjddemo20180418.show.mine.register.model.RegisterModel;
import bawei.com.myjddemo20180418.show.mine.register.view.IRegister;

public class RegisterPersenter implements IRegisterPersenter {

IRegister iRegister;
IRegisterModel iRegisterModel;

public RegisterPersenter(IRegister iRegister) {
this.iRegister = iRegister;
iRegisterModel = new RegisterModel();
}

@Override
public void login(String mobile, String password) {
//判断
boolean mob = Aerifly.isMobile(MyApp.context, mobile);
boolean pwd = Aerifly.isPassword(MyApp.context, password);
if (mob && pwd) {
iRegisterModel.Register(mobile, password, this);
}
}

@Override
public void onFailed(String str) {
if (iRegister == null) {
return;
}

iRegister.onFailed(str);
}

@Override
public void onSuccess(Object o) {
if (null == iRegister) {
return;
}

iRegister.onSuccess(o.toString());

}

@Override
public void onDestory() {
if (null != iRegister) {
iRegister = null;
}
}
}
view层接口
public interface IRegister {
void onFailed(String s);
void onSuccess(Object o);
}
实体类
package bawei.com.myjddemo20180418.show.mine.register.view;

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.google.gson.Gson;

import bawei.com.myjddemo20180418.R;
import bawei.com.myjddemo20180418.show.mine.login.view.LoginActivity;
import bawei.com.myjddemo20180418.show.mine.register.bean.RegBean;
import bawei.com.myjddemo20180418.show.mine.register.presenter.RegisterPersenter;

public class RegisterActivity extends AppCompatActivity implements View.OnClickListener,IRegister {

/**
* 请输入电话号
*/
private EditText mEtMobile;
/**
* 请输入密码
*/
private EditText mEtPass;
/**
* 立即注册
*/
private Button mBtnRegisterNow;
private RegisterPersenter registerPersenter;

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

private void initView() {
mEtMobile = (EditText) findViewById(R.id.et_mobile);
mEtPass = (EditText) findViewById(R.id.et_pass);
mBtnRegisterNow = (Button) findViewById(R.id.btn_registerNow);
mBtnRegisterNow.setOnClickListener(this);
registerPersenter = new RegisterPersenter(this);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
default:
break;
case R.id.btn_registerNow:
String mobile = mEtMobile.getText().toString();
String pass = mEtPass.getText().toString();
registerPersenter.login(mobile,pass);
break;
}
}

@Override
public void onFailed(String s) {

}

@Override
public void onSuccess(Object o) {
String result = o.toString();
Gson g = new Gson();
RegBean supperClassTwo = g.fromJson(result, RegBean.class);
String code = supperClassTwo.getCode();
if (code.equals("0")) {
Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
startActivity(intent);
Toast.makeText(this, supperClassTwo.getMsg(), Toast.LENGTH_SHORT).show();
finish();
} else {
Toast.makeText(this, supperClassTwo.getMsg(), Toast.LENGTH_SHORT).show();
}
}
}
验证
package bawei.com.myjddemo20180418.netutils;

import android.content.Context;
import android.widget.Toast;

/**
* Created by zhangjunyou on 2018/4/13.
*/

public class Aerifly {
//手机号验证
public static boolean isMobile(Context content, String tel) {

if (tel.matches(Api.REGEX_TEL)) {

} else {
Toast.makeText(content, "手机号码格式不正确", Toast.LENGTH_SHORT).show();
return false;
}
return true;
}

//密码验证
public static boolean isPassword(Context content, String pwd) {
if (pwd.matches(Api.REGEX_PASSWORD)) {

}else {
Toast.makeText(content, "密码长度为6-20位不能包含特殊字符", Toast.LENGTH_SHORT).show();
return false;
}
return true;

}
}
OK工具类
public interface OnNetListener {
void onSuccess(String result);

void onFailed(Exception e);
}
package bawei.com.myjddemo20180418.netutils;

import android.os.Handler;
import android.os.Looper;
import android.util.Log;

import java.io.IOException;
import java.util.Map;
import java.util.concurrent.TimeUnit;

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

public class OkhttpUtils {
//private static OkhttpUtils okhttpUtils = new OkhttpUtils();//饿汉式
private static OkhttpUtils instance;
private final OkHttpClient okHttpClient;
private final Handler handler;

//构造方法要私有化
private OkhttpUtils() {
//创建OkhttpClient对象
okHttpClient = new OkHttpClient.Builder()
.connectTimeout(15, TimeUnit.SECONDS)//连接超时
.writeTimeout(20, TimeUnit.SECONDS)//写入超时
.readTimeout(20, TimeUnit.SECONDS)//读取超时
.build();
handler = new Handler(Looper.getMainLooper());
}
//单例模式
//懒汉式
public static OkhttpUtils getInstance() {
if (instance == null) {
instance = new OkhttpUtils();
}
return instance;
}
/*饿汉式
public static OkhttpUtils getInstance(){
return okhttpUtils;
}*/

/**
* GET请求
*
* @param url
*/
public void doGet(String url, final OnNetListener onNetListener) {
//创建Request
final Request request = new Request.Builder()
.url(url)
.build();
//发送请求
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, final IOException e) {
handler.post(new Runnable() {
@Override
public void run() {
onNetListener.onFailed(e);
}
});
}

@Override
public void onResponse(Call call, Response response) throws IOException {
//拿到服务器返回的数据
final String string = response.body().string();
handler.post(new Runnable() {
@Override
public void run() {
onNetListener.onSuccess(string);
}
});
}
});
}

/**
* doget 请求
*
* @param url
* @param params
* @param onNetListener
*/
public void doGet(String url, Map<String, String> params, final OnNetListener onNetListener) {
//判断params是否为null
if (params != null) {
StringBuilder sb = new StringBuilder();
sb.append("?");
//拼接参数
for (Map.Entry<String, String> entry : params.entrySet()) {
sb.append(entry.getKey());
sb.append("=");
sb.append(entry.getValue());
sb.append("&");
}
//?mobile=12354678954&password=123456&
String s = sb.toString();
String strParam = s.substring(0, s.length() - 1);
url += strParam;
Log.e("sdfasdf", "url = " + url);
}
//创建Request对象
Request request = new Request.Builder().url(url).build();
//发送请求
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, final IOException e) {
handler.post(new Runnable() {
@Override
public void run() {
onNetListener.onFailed(e);
}
});
}

@Override
public void onResponse(Call call, Response response) throws IOException {
final String string = response.body().string();
Log.e("MainActivity", "string = " + string);
handler.post(new Runnable() {
@Override
public void run() {
onNetListener.onSuccess(string);
}
});
}

});
}

/**
* dopsot 请求
*
* @param url
* @param params
* @param onNetListener
*/
public void doPost(String url, Map<String, String> params, final OnNetListener onNetListener) {
if (params != null) {
//创建FormBody用于封装参数
FormBody.Builder fBuilder = new FormBody.Builder();
for (Map.Entry<String, String> entry : params.entrySet()) {
fBuilder.add(entry.getKey(), entry.getValue());
}
FormBody formBody = fBuilder.build();
Request.Builder builder = new Request.Builder();
builder.url(url);
builder.post(formBody);
//创建Request
Request request = builder.build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, final IOException e) {
handler.post(new Runnable() {
@Override
public void run() {
onNetListener.onFailed(e);
}
});
}

@Override
public void onResponse(Call call, Response response) throws IOException {
final String string = response.body().string();
Log.e("MainActivity", "string = " + string);
handler.post(new Runnable() {
@Override
public void run() {
onNetListener.onSuccess(string);
}
});
}
});
}
}
}

猜你喜欢

转载自www.cnblogs.com/zhangjunyou/p/8960691.html