这是Loginactivity
public class LoginActivity extends BaseActivity<LoginPresenter> implements LoginContract.View,View.OnClickListener{
private EditTextWithDel EtLoginUser,EtLoginPassword;
private Button mBtnLogin;
private CheckBox mCBox;
private TitleBar toolbar;
private TextView loginReg , loginjzmm , loginwjmm;
private ImageView mIvlogin;
User user;
Gson gson = new Gson();
private boolean isPass = true;
private String mUser = "";
private String mPass = "";
private Map<String , String>map = new ArrayMap<>();
private Dialog progressDialog;
// private MyDataBaseHelper dataBaseHelper;
// @Override
// protected void onCreate(@Nullable Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_login);
//
// }
@Override
public int getContentViewId() {
return R.layout.activity_login;
}
@Override
public void initViews() {
EtLoginUser = findViewById(R.id.login_user);
EtLoginPassword = findViewById(R.id.login_password);
mBtnLogin = findViewById(R.id.login_btn);
mCBox = findViewById(R.id.remember_password);
toolbar = findViewById(R.id.login_toolbar);
loginReg = findViewById(R.id.title_cotent);
loginjzmm = findViewById(R.id.login_tv_jzmm);
loginwjmm = findViewById(R.id.login_wjmm);
mIvlogin = findViewById(R.id.login_line_reg);
setToolBarTitle();
loginjzmm.setOnClickListener(this);
loginwjmm.setOnClickListener(this);
loginReg.setOnClickListener(this);
mIvlogin.setOnClickListener(this);
mBtnLogin.setOnClickListener(this);
}
private void setToolBarTitle(){
mBtnLogin.getBackground().setAlpha(30);
loginReg.setVisibility(View.VISIBLE);
loginReg.setText("注册");
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);//不显示自带标题
toolbar.setNavigationIcon(R.mipmap.img_back);
//设置透明状态栏
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT ){
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
toolbar.setPadding(0 , BarStatusHeightUtil.getStatusBarHeightAll(this) , 0 , 0);
}
}
@Override
public void addListener() {
toolbar.setOnClickListener(this);
}
@Override
public void initData() {
}
@Override
public void showDialog() {
if (progressDialog == null){
progressDialog = new Dialog(LoginActivity.this , R.style.progress_dialog);
progressDialog.setContentView(R.layout.dialog);
progressDialog.setCancelable(true);
progressDialog.getWindow().setBackgroundDrawableResource(R.color.transparent);
TextView msg = progressDialog.findViewById(R.id.tv_loadingmsg);
msg.setText("登陆中。。。");
progressDialog.show();
// Log.d("LoginActivity","你能看到我就说明showDialog没问题");
}
}
@Override
public void onSucceed() {
if (isPass){
KeyConstants.LOGIN_IS = true;
KeyConstants.USER_SINGLED = "1";
user = new User();
user.setUsername(mUser);
MyApplication.getCache().put(KeyConstants.USER_ITEM , user);
MyApplication.getCache().put(USER_NAME , mUser);
Intent startIntent = new Intent(MyApplication.getContext(), WebsocketService2.class);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
startForegroundService(startIntent);
}else{
startService(startIntent);
}
}
Log.d("LoginActivity", "让我康康");
Intent intent = new Intent();
intent.putExtra("userdata" , user);
int type = getIntent().getIntExtra("login" , 0);
switch (type){
case LOGIN_SUCCESS_EXIT:
setResult(LOGIN_SUCCESS_EXIT , intent);
break;
case LOGIN_SUCCESS:
setResult(LOGIN_SUCCESS , intent);
break;
default:
}
finish();
}
@Override
public void onFailure(String err, Throwable e) {
}
@Override
public void onFail(String err) {
KLog.d(err);
}
@Override
public void hideDialog() {
if (progressDialog != null && progressDialog.isShowing()){
progressDialog.dismiss();
progressDialog = null;
}
}
@Override
protected LoginPresenter onCreatePresenter() {
return new LoginPresenter(this);
}
@Override
public void onClick(View v) {
Intent in ;
switch (v.getId()){
case R.id.login_tv_jzmm:
if (mCBox.isChecked()){
isPass = true;
mCBox.setChecked(false);
}else{
isPass = false;
mCBox.setChecked(true);
}
break;
case R.id.login_wjmm:
ToastUtils.showShort("待完善。。。");
break;
case R.id.title_cotent:
ToastUtils.showShort("待完善。。。");
case R.id.login_line_reg:
in = new Intent(LoginActivity.this , RegisterActivity.class);
startActivity(in);
case R.id.login_btn:
if (!TextUtils.isEmpty(EtLoginUser.getText().toString().trim())){
mUser = EtLoginUser.getText().toString().trim();
}else{
ToastUtils.showShort("请输入您的用户名");
return;
}
if (!TextUtils.isEmpty(EtLoginPassword.getText().toString().trim())){
mPass = EtLoginPassword.getText().toString().trim();
}else{
ToastUtils.showShort("请输入您的密码");
return;
}
// ToastUtils.showShort("我被电击了");
map.clear();
map.put("username" , mUser);
map.put("password" , mPass);
String strEntity = gson.toJson(map);
RequestBody body = RequestBody.create(MediaType.parse("application/json") , strEntity);
mPresenter.getUserData(body);
case R.id.login_toolbar:
onBackPressed();
default:
break;
}
}
}
这是LoginPresenter
public class LoginPresenter extends LoginContract.Presenter {
public LoginPresenter(LoginContract.View view){
mView = view;
mModel = new LoginModel();
}
@Override
public void getUserData(RequestBody body){
Subscription s =mModel.userData(body).subscribe(new Subscriber<LoginBean>() {
@Override
public void onStart(){
super.onStart();
mView.showDialog();
}
@Override
public void onCompleted(){
mView.hideDialog();
}
@Override
public void onError(Throwable e){
if (e instanceof JsonParseException){
mView.onFailure("数据异常",e);
}else if (e instanceof IOException){
mView.onFailure("网络异常",e);
}else if (e instanceof TimeoutException){
mView.onFailure("网络异常",e);
}else{
mView.onFail(e.getMessage());
}
onCompleted();
}
@Override
public void onNext(LoginBean loginBean){
if (loginBean.getSuccess())
mView.onSucceed();
}
});
addSubscribe(s);
}
}