Intent intent = getIntent();
String inphone = intent.getStringExtra("phone");
String inpass = intent.getStringExtra("pass");
editMobile.setText(inphone);
editPass.setText(inpass);
sp = getSharedPreferences("m", 0);
edit = sp.edit();
展示
//展示
@Override
public void showData(String mCartString) {
//解析护具
BeanLogin beanLogin = new Gson().fromJson(mCartString, BeanLogin.class);
String message = beanLogin.getMessage();
Log.d("xxx", message + "-----------");
if (message.equals("登录成功")) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
//id //跳转到首页
startActivity(new Intent(MainActivity.this, ShowActivity.class));
sessionId = beanLogin.getResult().getSessionId();
userId = beanLogin.getResult().getUserId();
//存
edit.putString("sessionId", sessionId);
edit.putInt("userId", userId);
//记住密码
boolean jz = sp.getBoolean("jz", false);
if (jz) {
editMobile.setText(sp.getString("jzphone", ""));
editPass.setText(sp.getString("jzpass", ""));
remPass.setChecked(jz);
}
//记住密码
if (remPass.isChecked()) {
edit.putString("phone", phone);
edit.putString("pwd", pwd);
edit.putBoolean("jz", true);
edit.commit();
}
}
}
注册 登录
@OnClick({R.id.btn_regin, R.id.btn_login})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.btn_regin://注册
startActivity(new Intent(MainActivity.this, ReginActivity.class));
break;
case R.id.btn_login://
phone = editMobile.getText().toString();
pwd = editPass.getText().toString();
//判断
if (!PhoneNumber.isMobileNO(phone)) {
Toast.makeText(this, "请输入正确的手机号码", Toast.LENGTH_SHORT).show();
} else {
if (pwd.length() != 6) {
Toast.makeText(this, "密码不能少于6位", Toast.LENGTH_SHORT).show();
} else {
//调用p层
mLoginPresenter = new LoginPresenter();
//绑定
mLoginPresenter.attachView(this);
//解绑
//mLoginPresenter.detachView(this);
String s = Utiles.USER_LOGIN_URL + "?phone=" + phone + "&pwd=" + pwd;
//加护
mLoginPresenter.requestData(s);
}
}
break;
}
记住密码
private void initData() {
//监听记住密码复选框和跳转注册页面
bindEvent();
//记住密码
rememberThePassword();
}
private void rememberThePassword() {
if (sp.getBoolean("rememberPassword", false)) {
remPass.setChecked(true);
editMobile.setText(sp.getString("phone", ""));
editPass.setText(sp.getString("pwd", ""));
}
}
private void bindEvent() {
remPass.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
sp.edit().putBoolean("rememberPassword", true).commit();
} else {
sp.edit().putBoolean("rememberPassword", false).commit();
}
}
});
}
model层
public void OnSuccess(String s, final LoginView.IModel.OnCallBackLisenter onCallBackLisenter) {
OkGo.<String>post(s).execute(new StringCallback() {
@Override
public void onSuccess(Response<String> response) {
String s = response.body().toString();
Log.d("xxx", s + "-----------");
onCallBackLisenter.onCallBack(s);
}
});
接口
** public interface IView {
/**
* 展示数据
*
* @param mCartString
*/
public void showData(String mCartString);
}
public interface IPresenter<T extends LoginView.IView> {
/**
* 关联
*/
public void attachView(T t);
/**
* 解绑
*
* @param t
*/
public void detachView(T t);
/**
* 和M层进行交互
*
* @param s
*/
public void requestData(String s);
}
public interface IModel {
/**
* 请求数据
*/
public void OnSuccess(OnCallBackLisenter onCallBackLisenter);
/**
* 接口回调
*/
public interface OnCallBackLisenter {
//回显数据
public void onCallBack(String mCartString);
}
}**
注册
@OnClick(R.id.btn_regin)
public void onViewClicked() {
//注册
phone = editMobile.getText().toString();
pwd = editPass.getText().toString();
//判空
if (!PhoneNumber.isMobileNO(phone)) {
Toast.makeText(this, "请输入正确的手机号", Toast.LENGTH_SHORT).show();
} else {
if (pwd.equals("")) {
Toast.makeText(this, "验证码不能为空", Toast.LENGTH_SHORT).show();
} else {
if (pwd.length() != 6) {
Toast.makeText(this, "密码不能少于6位", Toast.LENGTH_SHORT).show();
} else {
//p层
presenter = new RegisterPresenter();
presenter.attachView(this);
//路径
String s = Utiles.USER_REGISTER_URL + "?phone=" + phone + "&pwd=" + pwd;
presenter.requestData(s);
}
}
}
}
@Override
public void showData(String mCartString) {
Gson gson = new Gson();
RegisterBean bean = gson.fromJson(mCartString, RegisterBean.class);
String message = bean.getMessage();
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
if (message.equals("注册成功")) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(ReginActivity.this, MainActivity.class);
intent.putExtra("phone", phone);
intent.putExtra("pass", pwd);
startActivity(intent);
} else {
Toast.makeText(this, "已经注册", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
presenter.detachView(this);
}
正则
/**
* 判断字符串是否符合手机号码格式
* 移动号段: 134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188
* 联通号段: 130,131,132,145,155,156,170,171,175,176,185,186
* 电信号段: 133,149,153,170,173,177,180,181,189
* @param
* @return 待检测的字符串
*/
public static boolean isMobileNO(String mobileNums) {
/**
* 判断字符串是否符合手机号码格式
* 移动号段: 134,135,136,137,138,139,147,150,151,152,157,158,159,170,178,182,183,184,187,188
* 联通号段: 130,131,132,145,155,156,170,171,175,176,185,186
* 电信号段: 133,149,153,170,173,177,180,181,189
* @param str
* @return 待检测的字符串
*/
String telRegex = "^((13[0-9])|(14[5,7,9])|(15[^4])|(18[0-9])|(17[0,1,3,5,6,7,8]))\\d{8}$";// "[1]"代表第1位为数字1,"[358]"代表第二位可以为3、5、8中的一个,"\\d{9}"代表后面是可以是0~9的数字,有9位。
if (TextUtils.isEmpty(mobileNums))
return false;
else
return mobileNums.matches(telRegex);
}