如何在不点击按钮的情况下验证密码?

时间:2018-05-05 13:56:39

标签: android

有一个Activity,内部活动有片段我想验证密码 我已经使用TextWatcher来验证输入,但是当我输入无效密码时它显示无效的密码提示消息,但问题是当我移动到下一个编辑文本然后错误消息消失

但我希望在用户输入有效密码之前显示错误消息,即使他正在使用另一个edittext screenshot of entered invalid password

这是Textwatcher代码

       mnewPassword.getInputField().addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

            }

            @Override
            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                if (charSequence.toString().length() > 0) {
                    if (!CommonUtils.isPasswordValid(mnewPassword.getText().toString())) {
                        mnewPassword.setUpperHintColor(Color.parseColor("#EE3437"));
                        mnewPassword.setHintMessage(getString(R.string.invalidpassword));
                    }else{
                        mnewPassword.setUpperHintColor(Color.parseColor("#EE3437"));
                        mnewPassword.setHintMessage(getString(R.string.invalidpassword));
                    }

                } else {
                    mnewPassword.setUpperHintColor(Color.parseColor("#EE3437"));
                    mnewPassword.setHintMessage(getString(R.string.invalidpassword));
                    mnewPassword.setHintTextColor(Color.parseColor("#EE3437"));

                }
            }

            @Override
            public void afterTextChanged(Editable editable) {
                    /*if (editable.length() > 0)
                    {
                        if(!CommonUtils.isPasswordValid(mnewPassword.getText().toString()))
                        {
                            mnewPassword.setUpperHintColor(Color.parseColor("#EE3437"));
                            mnewPassword.setHintMessage(getString(R.string.invalidpassword));
                        }
                    }
*/
            }
        });

1 个答案:

答案 0 :(得分:0)

您可以将其他视图(窗口小部件)设置为view.setFocusable(false),直到验证密码为止。 验证密码后,您可以将所有视图(窗口小部件)设置为view.setFocusable(true)。 希望这可以帮到你。