當用戶插入非LetterOrDigit
並在用戶插入LetterOrDigit
時啓用它時禁用按鈕。如何在使用「addTextChangedListener」和「Character.isLetterOrDigit(s.charAt(i))」進行偵聽時啓用文本「
我遇到的問題是,即使用戶在非LetterOrDigit
之後插入字母,它也會啓用它。但我想只在他刪除非LetterOrDigit
角色時啓用。
我的代碼
name1.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) {
}
@Override
public void afterTextChanged(Editable s) {
for (int i = 0; i < s.length(); i++) {
if(name1.getText().toString().length()>16)
{
register.setClickable(false);
mistakeusername.setErrorEnabled(true);
mistakeusername.setError("You cant insert more then 16 characters");
}else {
if (!(Character.isLetterOrDigit(s.charAt(i))||Character.toString(s.charAt(i)).equals("_")))
{
register.setClickable(false);
mistakeusername.setErrorEnabled(true);
mistakeusername.setError("Only allowed Digit, Number or '_'");
}else{
register.setClickable(true);
mistakeusername.setErrorEnabled(false);
mistakeusername.setError("");
}
}
}
}
});
我覺得你的問題是,你應該從 '破' '爲' 你的「如果((Character.isLetterOrDigit(s.charAt(I))||字符後! toString(s.charAt(i))。equals(「_」)))「是真的。 – pooyan