2011-12-20 3 views
2

나는 Pattern, Matcher 및 regexp로 검증 된 TextWatcher에서 본 EditText를 가지고있다. 거의 정상적으로 작동합니다. 사용자가 char을 EditText에 입력하면 TextWatcher는 onTextChanged 메서드를 실행하고 입력 된 char의 유효성을 검사합니다. 모든 것은 잘 작동합니다. EditText의 오른쪽에 오류 아이콘이 있고 "오류"라는 팝업이 있습니다. 승인. 이제 사용자가 두 번째 문자를 입력하면 팝업 및 오류 아이콘이 사라집니다. 세 번째 문자, 다시 나타납니다. 넷째, 사라져 버린다. 오류가있을 때 아이콘과 팝업을 항상 볼 수있게 만드는 방법은 무엇입니까? 코드 :EditText 유효성 검사에서 setError를 사용하면 팝업 및 아이콘이 사라집니다. (안드로이드)

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; 

} 

내가 안드로이드 2.1 SDK를 사용하여 API (7)

답변

0

onAfterTextChanged()에 코드를 넣습니다.

+0

나를 위해 작동하지 않았습니다. –

관련 문제