//主页面的代码
public class RegisterActivity extends AppCompatActivity implements IRegiView { private EditText register_name; private EditText register_pwd; private Button register_btn; private RegPresenter presenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_register); //初始化控件 initView(); //控件的操作 operation(); runOnUiThread(new Runnable() { @Override public void run() { } }); } //控件的操作 private void operation() { register_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //注册的操作 RegOperation(); } }); } //初始化控件 private void initView() { presenter = new RegPresenter(this); register_btn = findViewById(R.id.register_btn); register_name = findViewById(R.id.register_name); register_pwd = findViewById(R.id.register_pwd); } //注册的操作 private void RegOperation() { presenter.register(register_name.getText().toString(),register_pwd.getText().toString()); } @Override public void mbVerify() { Toast.makeText(RegisterActivity.this,"用户名不能为空",Toast.LENGTH_SHORT).show(); } @Override public void mboVerify() { Toast.makeText(RegisterActivity.this,"用户名不合法",Toast.LENGTH_SHORT).show(); } @Override public void pwVerify() { Toast.makeText(RegisterActivity.this,"密码不能为空",Toast.LENGTH_SHORT).show(); } @Override public void success(RegBean regBean) { Toast.makeText(RegisterActivity.this,"成功"+regBean,Toast.LENGTH_SHORT).show(); Intent intent = new Intent(RegisterActivity.this,MainActivity.class); startActivity(intent); finish(); } @Override public void faliure(String string) { } }
//model层的代码
public class RegModel { private Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); } }; // 请求接口数据 public void register(String mobile, String pwd, final RegCallBack regCallBack) { OkHttpClient okHttpClient = new OkHttpClient.Builder() .build(); FormBody formBody = new FormBody.Builder() .add("mobile",mobile) .add("password",pwd).build(); Request request = new Request.Builder() .url(Api.Register).post(formBody).build(); okHttpClient.newCall(request).enqueue(new Callback() { //成功 @Override public void onFailure(Call call, IOException e) { if (regCallBack!=null){ regCallBack.failure("请求失败"); } } //失败 @Override public void onResponse(Call call, Response response) throws IOException { //得到响应体json //切换线程把bean类回调给presenter if (response.code()==200){ String result =response.body().string(); parseJson(result,regCallBack); } } }); } //解析json private void parseJson(String result, final RegCallBack regCallBack) { if (result!=null){ final RegBean regBean = new Gson().fromJson(result,RegBean.class); handler.post(new Runnable() { @Override public void run() { if (regCallBack!=null){ regCallBack.success(regBean); } } }); } } public interface RegCallBack{ void failure(String error); void success(RegBean regBean); } }
//view层的代码
public interface IRegiView { //校验手机号 void mbVerify(); // /校验手机号合法 void mboVerify(); //校验密码 void pwVerify(); //请求成功 void success(RegBean regBean); //失败 void faliure(String string); }
//p层的代码
public class RegPresenter { public RegModel regModel; private IRegiView iRegiView; public RegPresenter(IRegiView iRegiView) { this.iRegiView=iRegiView; this.regModel = new RegModel(); } //注册的逻辑 public void register(String mobile, String pwd) { //判断是否等于空 if (TextUtils.isEmpty(mobile)) { iRegiView.mbVerify(); return; } if (!RegUtils.checkCellphone(mobile)){ iRegiView.mboVerify(); return; } if (TextUtils.isEmpty(pwd)) { iRegiView.pwVerify(); return; } regModel.register(mobile, pwd, new RegModel.RegCallBack() { @Override public void failure(String error) { iRegiView.faliure(error); } @Override public void success(RegBean regBean) { iRegiView.success(regBean); } }); } }