2017-07-06 29 views
0

我有一個Editext在那裏我執行的是運作良好的驗證,但是,按空格味精有disapper.Can請人指出,我們做錯了。 請找到下面的圖片更加清晰: enter image description hereEditext SETERROR消失

按下空格鍵後: enter image description here

下面的代碼中,我們使用的是:

 txtFullName.addTextChangedListener(new MyTextWatcher(txtFullName)); 
     txtEmail.addTextChangedListener(new MyTextWatcher(txtEmail)); 

private class MyTextWatcher implements TextWatcher { 

     private View view; 

     private MyTextWatcher(View view) { 
      this.view = view; 
     } 

     public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
     } 

     public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 
     } 

     public void afterTextChanged(Editable editable) { 
      switch (view.getId()) { 
       case R.id.txtFullName: 
        if (txtFullName.getText().toString().length() >= 10) { 
         txtFullName.setError(getString(R.string.limit_exceeds)); 
         txtFullName.requestFocus(); 
        } 
        break; 
       case R.id.txtEmail: 
        if (txtEmail.getText().toString().length() >= 20) { 
         txtEmail.setError(getString(R.string.limit_exceeds)); 
         txtEmail.requestFocus(); 
        } 
        break; 
        default: 
        break; 
      } 
    } 
+0

你應該做的事情就像[this](http://www.materialdoc.com/character-counter/) – Sufian

+0

我想我的editext不應該超過10個字符...如果它需要它昭和一些誤差 –

+0

的可能的複製[編輯文本的最大長度,並顯示在texview長度(https://stackoverflow.com/questions/21718733/edit-text-max-length-and-show-the-length-in -the-texview) – Sufian

回答

1

原來的答覆

根據屏幕截圖,輸入的文字是 10個字符。

按下空格會增加一個字符,使 txtEmail.getText().toString().length()11,並觸發TextWatcher,如果文本爲10個字符或更短,將只顯示錯誤。

+0

錯誤味精會顯示如果EditText上的值大於10 –

+0

你創建兩個不同的實例TextWatchers?每個EditText一個?那裏有些奇怪的東西。您從TextWatcher內部調用txtEmail和txtFullName,而不作爲參數或構造函數傳入。請貼使用相同textwatcher兩個EditText上的所有代碼 –

+0

林... –