2011-12-20 19 views
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)

回答

0

把你的代碼onAfterTextChanged()

+0

沒有爲我工作。 – 2013-04-04 22:23:13