2
我有一個由TextWatcher監視的EditText,它使用Pattern,Matcher和一個正則表達式進行驗證。它幾乎可以工作。當用戶在EditText中輸入char時,TextWatcher會執行onTextChanged方法並驗證輸入的字符。每一件事情都可以正常工作,EditText右側有一個錯誤圖標,彈出窗口顯示「錯誤」。好。現在,當用戶輸入第二個字符時,彈出窗口和錯誤圖標消失。第三個字符,它再次出現。它消失等等......爲什麼?如何使圖標和彈出窗口在出現錯誤時始終可見?代碼:使用setError進行EditText驗證,消失的彈出框和圖標。 (Android)
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)
沒有爲我工作。 – 2013-04-04 22:23:13