我有一个由TextWatcher监视的EditText,它使用Pattern,Matcher和regexp进行验证。它几乎没问题。当用户在EditText中输入char时,TextWatcher将使用onTextChanged方法并验证输入的char。一切正常,EditText右侧有一个错误图标,弹出窗口显示“错误”。好。现在,当用户输入第二个字符时,弹出窗口和错误图标消失。第三个字符,它再次出现。它会消失等等......为什么?当出现错误时,如何使图标和弹出窗口始终可见?代码:
public EditTextValidator(EditText editText, String patternString, String errorString)
{
this.editText = editText;
this.errorString = errorString;
this.patternString = patternString;
}
@Override
public void afterTextChanged(Editable s)
{
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
Pattern pattern = Pattern.compile(patternString);
Matcher matcher = pattern.matcher(s);
if (!matcher.matches())
{
editText.setError(errorString);
} else
{
editText.setError(null);
}
}
private EditText editText;
private String errorString;
private String patternString;
}
我使用Android 2.1 Sdk(Api 7)
答案 0 :(得分:0)
将您的代码放入onAfterTextChanged()
。