I have four checkboxes
which will be checked if condition satisfies in text change of edit text
. One check box for uppercase, one for length, one for lower case and one for symbol. once user starts to type one of these or all or all possible one needs to be checked.
I have tried :
mBinding.cetPassword.getEditText().addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (validateUpperCase(mBinding.cetPassword.getEditText().getText().toString().trim())) {
mBinding.chkUpperCase.setChecked(true);
}else {
mBinding.chkUpperCase.setChecked(false);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
public boolean validateUpperCase(String name) {
Pattern ps = Pattern.compile("([A-Z]*)");
Matcher ms = ps.matcher(name);
return ms.matches();
}
It does not works perfectly. on adding second upper case checkbox gets unchecked.
Please suggest! Thank you!