2017-11-17 8 views
1

내 EditText에서 setError를 사용하고 있습니다. 내 Edittext의 길이가 0이고 Delete 키를 한 번 더 누르면 Android 4.4.2 및 4.3에서 아이콘과 메시지 오류가 사라지고 메시지가 표시 될 때 작동합니다.내 edittext의 길이가 0이고 한 번 더 delete를 누르면 Android 4.4.2 및 4.3에서 Editext setError 아이콘이 사라집니다.

Android 6.0 및 6.0.1의 경우 이는 별 의미가 없습니다.

여기에 내 코드

private void enableBtnSend() { 
    if (isDatesSelected() && etDetails.getText().toString().length() > 0) { 
     btnCreateEnalbled = true; 
     etDetails.setError(null); 
     invalidateOptionsMenu(); 
    } else { 
     if(etDetails.getText().toString().length() <= 0) { 
      etDetails.setError(getString(R.string.empty_description_field)); 
     } else { 
      etDetails.setError(null); 
     } 
     btnCreateEnalbled = false; 
     invalidateOptionsMenu(); 
    } 
} 

private TextWatcher onEtAnswerChanged() { 
    return new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
      Log.i("beforeTextChanged","beforeTextChanged"); 
     } 

     @Override 
     public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
      Log.i("onTextChanged","onTextChanged"); 
     } 

     @Override 
     public void afterTextChanged(Editable editable) { 
      enableBtnSend(); 
     } 
    }; 
} 

답변

0
private void enableBtnSend() { 
    if (isDatesSelected() && etDetails.getText().toString().length() > 0) { 
     btnCreateEnalbled = true; 
     etDetails.setError(null); 
     invalidateOptionsMenu(); 
    } else { 
     if(etDetails.getText().toString().length() <= 0) { 


     etDetails.setError(getString(R.string.empty_description_field)); 
    etDetails.requestFocus(); //add this 
      } else { 
       etDetails.setError(null); 
    etDetails.requestFocus(); //add this 
      } 
      btnCreateEnalbled = false; 
      invalidateOptionsMenu(); 
     } 
    } 

그것은 작동합니다.

+0

두 버전 모두에서 작동하지 않았습니다. – groff07