2017-07-06 18 views
0

私はEditextを使用していますが、うまく動作していますが、space msgがdisapperを持っています。誰かが間違っている箇所を指摘してください。 より明確にするため、以下の画像をご覧ください: enter image description hereEditext setErrorが表示されなくなりました

スペースバーを押した後:によると

 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文字以上を取らないようにしてください... showa some error –

+0

[テキストの最大長を編集し、texviewで長さを表示]の可能な複製(https://stackoverflow.com/questions/21718733/edit-text-max-length-and-show-the-length-in -the-texview) – Sufian

答えて

1

オリジナル答え

enter image description here

我々が使用している次のコードをスクリーンショット、入力されたテキストは10文字です。

空白を押すともう1文字追加され、 11となり、TextWatcherがトリガーされ、テキストが10文字以下の場合にのみエラーが表示されます。

+0

edittextの値が10より大きい場合、エラーmsgが表示されます –

+0

2つの異なるインスタンスTextWatchersを作成していますか? EditTextごとに1つ?そこには何か不思議なことがあります。パラメータまたはコンストラクタとして渡されることなく、TextWatcher内からtxtEmailおよびtxtFullNameを呼び出しています。すべてのコードを貼り付けてください –

+0

EditTextに同じテキストウォッチャーを使用しています... –

関連する問題