//布局
<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="登录" android:textSize="26dp" android:gravity="center" android:layout_marginTop="10dp"/> <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_marginTop="10dp" android:background="#000"/> <EditText android:id="@+id/mobile" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:layout_marginTop="15dp" android:layout_gravity="center" android:hint="请输入手机号"/> <EditText android:id="@+id/password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ems="10" android:layout_marginTop="15dp" android:layout_gravity="center" android:hint="请输入密码"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginTop="10dp" android:layout_gravity="center"> <Button android:id="@+id/login" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登录" android:textSize="26dp" android:layout_marginRight="30dp"/> <Button android:id="@+id/reg" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="注册" android:textSize="26dp"/> </LinearLayout>
//Model层
public void login(String account, String password, final ILoginModelCallBace iLoginModelCallBace){ String url="https://www.zhaoapi.cn/user/login"; Map<String,String> map=new HashMap<>(); map.put("mobile",account); map.put("password",password); OkHttpUtils.getInstance().doPost(url, map, new OkHttpUtils.OkCallback() { @Override public void getFailure(Exception e) { Log.d(TAG, "getFailure: "+e); } @Override public void getResponse(String josn) { LoginBean loginBean = new Gson().fromJson(josn, LoginBean.class); String code = loginBean.getCode(); String msg = loginBean.getMsg(); if (code.equals("0")){ if (iLoginModelCallBace!=null){ iLoginModelCallBace.onMainSuccess(loginBean); } }else{ if (iLoginModelCallBace!=null){ iLoginModelCallBace.onMainFaild(msg); } } } }); } public interface ILoginModelCallBace{ void onMainSuccess(LoginBean loginBean); void onMainFaild(String error); } }
//Presenter层
public class MainPresenter extends BasePresenter<IMainView>{ private MainModel mainModel; public MainPresenter(IMainView view) { super(view); } @Override protected void initModel() { mainModel = new MainModel(); } public void login(String account,String password){ /*if (account.equals("")){ if (view!=null){ view.onMainFaild("手机号不能为空"); } }*/ mainModel.login(account, password, new MainModel.ILoginModelCallBace() { @Override public void onMainSuccess(LoginBean loginBean) { if (view!=null){ view.onMainSuccess(loginBean); } } @Override public void onMainFaild(String error) { if (view!=null){ view.onMainFaild(error); } } }); } }
//View层
public class MainActivity extends BaseActivity<MainPresenter> implements View.OnClickListener,IMainView{ private EditText mobile; private Button button; private EditText password; private Button reg; private Button qrcode; private Button barcode; private CheckBox box; private ImageView imageView; @Override protected MainPresenter providePresenter() { return new MainPresenter(this); } @Override protected int provideLayoutId() { return R.layout.activity_main; } @Override protected void initDatas() { } @Override protected void initListener() { button.setOnClickListener(this); reg.setOnClickListener(this); qrcode.setOnClickListener(this); barcode.setOnClickListener(this); } @Override protected void initViews() { button = findViewById(R.id.login); reg = findViewById(R.id.reg); mobile = findViewById(R.id.mobile); password = findViewById(R.id.password); qrcode = findViewById(R.id.btn_add_qrcode); barcode = findViewById(R.id.btn_scan_barcode); box = findViewById(R.id.main_box); imageView = findViewById(R.id.iv_qr_image); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.reg: startActivity(new Intent(MainActivity.this,RegActivity.class)); break; case R.id.login: String account = mobile.getText().toString(); String pass = password.getText().toString(); presenter.login(account,pass); break; case R.id.btn_add_qrcode: Bitmap bitmap = EncodingUtils.createQRCode("hhhuguygyu", 350, 350, box.isChecked() ? BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher_background) : null); imageView.setImageBitmap(bitmap); break; case R.id.btn_scan_barcode: Intent intent = new Intent(MainActivity.this, CaptureActivity.class); startActivityForResult(intent,0); break; } } @Override public void onMainSuccess(final LoginBean loginBean) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this,"登录成功"+loginBean.getData().getMobile(),Toast.LENGTH_SHORT).show(); UMShareAPI umShareAPI=UMShareAPI.get(MainActivity.this); umShareAPI.getPlatformInfo(MainActivity.this, SHARE_MEDIA.QQ, authListener); } }); } @Override public void onMainFaild(final String error) { runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this,"登录失败"+error,Toast.LENGTH_SHORT).show(); } }); } @Override public Context context() { return this; } @Override protected void onDestroy() { super.onDestroy(); } } //IView接口
public interface IMainView extends IView{ void onMainSuccess(LoginBean loginBean); void onMainFaild(String error); }