У меня есть четыре checkboxes
, которые будут проверяться, удовлетворяет ли условие при изменении текста edit text
.Один флажок для прописных букв, один для длины, один для нижнего регистра и один для символа. как только пользователь начинает вводить один из них или все или все возможные, нужно проверить.
Я попытался:
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();
}
Не работает идеально.при добавлении второй заглавной буквы флажок снимается.
Пожалуйста, предложите!Спасибо!