有一个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));
}
}
*/
}
});
答案 0 :(得分:0)
您可以将其他视图(窗口小部件)设置为view.setFocusable(false),直到验证密码为止。 验证密码后,您可以将所有视图(窗口小部件)设置为view.setFocusable(true)。 希望这可以帮到你。