2017-11-17 6 views
1

私の編集テキストにsetErrorを使用しています。 Edittextの長さが0のときにAndroid 4.4.2と4.3でメッセージを表示する必要があるときに機能しています。削除をもう一度押すと、アイコンとメッセージのエラーが消えてしまいます。エディットテキストの長さが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

両方のAndroidバージョンで動作しませんでした。 – groff07

関連する問題