model类
public class LoginModel implements ILoginModel {
@Override
public void login(String url, String name, String pwd, final ILoginCallBack iLoginCallBack) {
OkHttp.okHttpPost(url, name, pwd, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
iLoginCallBack.onStatus(response.body().string());
}
});
}
@Override
public void regist(String url, String name, String pwd, final ILoginCallBack iLoginCallBack) {
OkHttp.okHttpPost(url, name, pwd, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
iLoginCallBack.onStatus(response.body().string());
}
});
}
}
model接口
public interface ILoginModel {
void login(String url, String name, String pwd, ILoginCallBack iLoginCallBack);
void regist(String url,String name,String pwd,ILoginCallBack iLoginCallBack);
//定义接口
interface ILoginCallBack{
void onStatus(String data);
void onFailed();
}
}
presenter类
public class LoginPresenter implements ILoginPresenter {
MainActivity mainActivity;
RegistActivity registActivity;
private final LoginModel loginModel;
public LoginPresenter(MainActivity mainActivity) {
this.mainActivity = mainActivity;
loginModel = new LoginModel();
}
public LoginPresenter(RegistActivity registActivity) {
this.registActivity = registActivity;
loginModel = new LoginModel();
}
@Override
public void loginPre(String name, String pwd) {
loginModel.login(Api.LOGIN, name, pwd, new ILoginModel.ILoginCallBack() {
@Override
public void onStatus(String data) {
mainActivity.showMsg(data);
mainActivity.jumpActivity();
}
@Override
public void onFailed() {
}
});
}
@Override
public void registPre(String name, String pwd) {
loginModel.regist(Api.REGIST, name, pwd, new ILoginModel.ILoginCallBack() {
@Override
public void onStatus(String data) {
registActivity.showMsg(data);
registActivity.jumpActivity();
}
@Override
public void onFailed() {
}
});
}
}
presenter接口
public interface ILoginPresenter {
void loginPre(String name, String pwd);
void registPre(String name,String pwd);
}
view(登录、注册)接口
public interface ILoginView {
void showMsg(String msg);
void jumpActivity();
}
登录Activity
public class MainActivity extends AppCompatActivity implements ILoginView{
private EditText et_login_name;
private EditText et_login_pwd;
private CheckBox ck_rem_pwd;
private TextView text_reg;
private Button btn_login;
private LoginPresenter loginPresenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_login_name = findViewById(R.id.et_login_name);
et_login_pwd = findViewById(R.id.et_login_pwd);
ck_rem_pwd = findViewById(R.id.ck_rem_pwd);
text_reg = findViewById(R.id.text_reg);
btn_login = findViewById(R.id.btn_login);
//初始化presenter
loginPresenter = new LoginPresenter(this);
btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = et_login_name.getText().toString();
String pwd = et_login_pwd.getText().toString();
if (TextUtils.isEmpty(name)||TextUtils.isEmpty(pwd)){
Toast.makeText(MainActivity.this, "用户名或密码不能为空", Toast.LENGTH_SHORT).show();
}else{
loginPresenter.loginPre(name,pwd);
}
}
});
text_reg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,RegistActivity.class);
startActivity(intent);
}
});
}
@Override
public void showMsg(final String msg) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
LoginBean loginBean = gson.fromJson(msg, LoginBean.class);
String status = loginBean.getStatus();
if (status.equals("0000")){
Intent intent = new Intent(MainActivity.this,ShowActivity.class);
startActivity(intent);
finish();
}else{
Toast.makeText(MainActivity.this, loginBean.getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public void jumpActivity() {
}
}
注册Activity
public class RegistActivity extends AppCompatActivity implements IRegistView {
private EditText et_reg_name;
private EditText et_reg_pwd;
private EditText et_reg_yan;
private TextView text_login;
private LoginPresenter loginPresenter;
private Button btn_regist;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_regist);
et_reg_name = findViewById(R.id.et_reg_name);
et_reg_yan = findViewById(R.id.et_reg_yan);
et_reg_pwd = findViewById(R.id.et_reg_pwd);
btn_regist = findViewById(R.id.btn_regist);
text_login = findViewById(R.id.text_login);
loginPresenter = new LoginPresenter(this);
btn_regist.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = et_reg_name.getText().toString();
String pwd = et_reg_pwd.getText().toString();
if (TextUtils.isEmpty(name)||TextUtils.isEmpty(pwd)){
Toast.makeText(RegistActivity.this, "输入内容不能为空", Toast.LENGTH_SHORT).show();
}else{
loginPresenter.registPre(name,pwd);
}
}
});
text_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(RegistActivity.this,MainActivity.class);
startActivity(intent);
finish();
}
});
}
@Override
public void showMsg(final String msg) {
runOnUiThread(new Runnable() {
@Override
public void run() {
Gson gson = new Gson();
RegistBean registBean = gson.fromJson(msg, RegistBean.class);
String status = registBean.getStatus();
if (status.equals("0000")){
Intent intent = new Intent(RegistActivity.this,MainActivity.class);
startActivity(intent);
finish();
}else{
Toast.makeText(RegistActivity.this, registBean.getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public void jumpActivity() {
}
}
成功!!!