AfterYoung 2021-04-13 13:43 采纳率: 81.8%
浏览 50
已结题

app项目的登录界面出现了窗体泄露,如何修改

这是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);
    }
}
  • 写回答

2条回答 默认 最新

  • AfterYoung 2021-04-13 16:18
    关注

    我调用了日志打印,没走到onSucceed()方法,也不知道是什么原因

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月25日
  • 已采纳回答 5月17日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加