2016-07-25 3 views
0

上のタップは、私はアプリを実行すると、私はTextInputLayout中にエラーが発生しました(真)setErrorEnabled呼んでも再び示してはいけない

private boolean validateName() { 
     if (edtName.getText().toString().trim().isEmpty()) { 
      inputLayoutName.setErrorEnabled(true); 
      inputLayoutName.setError("Enter name");  
      return false; 
     } else { 
      inputLayoutName.setErrorEnabled(false); 
     } 
     return true; 
} 

を使用し、ボタンを提出するとき、私は有効な名前についてTextInputLayout

このような
<android.support.design.widget.TextInputLayout 
      android:id="@+id/input_layout_name" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 

      <EditText 
       android:id="@+id/edt_name" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:hint="@string/title_what_should_we_call_you" /> 

</android.support.design.widget.TextInputLayout> 

を持っています、名前を付けて値を入力せずに[送信]をタップすると、エラーが表示されます(正しい)。
は、その後、私は名前にいくつかの値を入力してください - >タップ送信 - >エラー非表示(正しい)
をしかし、その後、私はすべての名前をクリアする - >タップ提出 - それが起こったのはなぜ>エラーが

を示すいけませんか?どんな助けや提案も大歓迎です。

私は、エラーメッセージのビューはまだ見えない

+0

エラーの有効化/無効化が本当に必要ですか? – Shaishav

+0

@Shaishav setErrorEnabled(false)を使用しない場合は、エラーメッセージをnullに設定するだけで、エラーメッセージの表示はまだ表示されません。 –

+0

Uh ...入力に問題がある場合にのみ機能を示すエラーを使用します。すべてがうまくいけば、単に 'setError()'を呼び出さないでください。なぜあなたは 'setError(null)'を呼び出す必要がありますか? – Shaishav

答えて

0

を行っていない、nullにsetErrorEnabled(false);だけ設定されたエラーメッセージを使用しない場合、私はこれをテストするためのサンプルを作り、私がしなければならなかったすべてだった:

if (edtName.getText().toString().trim().isEmpty()) { 
     inputLayoutName.setError("Enter name");  
     return false; 
} else { 
     inputLayoutName.setErrorEnabled(false); 
} 

return true; 

エラーは、ユースケースに応じて再表示されます。これで確認できますか?

関連する問題