一.定义一个类(以下用到的接口)
public class API {
public static final String LOGIN_URL = "http://www.zhaoapi.cn/user/login";//登录接口
public static final String REG_URL = "http://www.zhaoapi.cn/user/reg";//注册接口
}
二.写一个接口
public interface LoginCallBack {
void onLoginSuccess(String result);
void onLoginFailer(String msg);
}
三.view层
public interface ILoginView {
//登录成功
void onSuccess(String result);
//登录失败
void onFailer(String error);
}
四.Model层(处理数据)
public class LoginModel {
//这里的User类,里面包含的是姓名和密码
public void login(final User user, final LoginCallBack loginCallBack) {
HttpUtils httpUtils = new HttpUtils();
httpUtils.getpath(API.LOGIN_URL + "?mobile=" + user.getName() + "&&password=" + user.getPass());
httpUtils.getHelpListener(new HttpUtils.GetData() {
@Override
public void setString(String s) {
Gson gson = new Gson();
UserBean userBean = gson.fromJson(s, UserBean.class);
if (userBean.getCode().equals("0")) {
loginCallBack.onLoginSuccess("登陆成功");
} else {
loginCallBack.onLoginFailer("登录失败");
}
}
});
}
}
五.Presenter层
public class LoginPresenter {
private ILoginView iLoginView;
private LoginModel loginModel;
public LoginPresenter(ILoginView iLoginView) {
this.iLoginView = iLoginView;
loginModel = new LoginModel();
}
public void login(User user) {
loginModel.login(user, new LoginCallBack() {
@Override
public void onLoginSuccess(String result) {
iLoginView.onSuccess("登陆成功");
}
@Override
public void onLoginFailer(String msg) {
iLoginView.onFailer("登录失败");
}
});
}
}
六.Activity层
public class TwoActivity extends AppCompatActivity implements ILoginView {
private LoginPresenter loginPresenter;
private EditText name;
private EditText pwd;
private Button login_bt;
private TextView register;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
//初始化控件
name = (EditText) findViewById(R.id.name);
pwd = (EditText) findViewById(R.id.pwd);
login_bt = (Button) findViewById(R.id.login_bt);
loginPresenter = new LoginPresenter(this);
register = (TextView) findViewById(R.id.register);
//点击登录
login_bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name1 = name.getText().toString().trim();
String pwd1 = pwd.getText().toString().trim();
//判空
if (TextUtils.isEmpty(name1) && TextUtils.isEmpty(pwd1)) {
Toast.makeText(TwoActivity.this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show();
} else {
loginPresenter.login(new User(name1, pwd1));
}
}
});
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(TwoActivity.this, RegisterActivity.class));
}
});
}
@Override
public void onSuccess(String result) {
SharedPreferences sharedPreferences = getSharedPreferences("login", Context.MODE_PRIVATE);
SharedPreferences.Editor edit = sharedPreferences.edit();
edit.putInt("login", 0);
edit.commit();
Intent intent = new Intent(this, ShowActivity.class);
startActivity(intent);
finish();
Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
//startActivity(new Intent(TwoActivity.this, ShowActivity.class));
}
@Override
public void onFailer(String error) {
Toast.makeText(this, "登录失败", Toast.LENGTH_SHORT).show();
}
}
七.注册跟登录代码一致