EditText フィールドのテキスト入力を検証しようとしています。setErrors
フィールドにテキストが入力されていない場合に作成しました。Submit
ボタンが押されると、フィールドが検証されます。
空のフィールドに対してasetError
がスローされた場合、フィールドにテキストが入力されます。ユーザーが空のフィールドにテキストを入力して手動でタップした場合でsetError
はなく、Submi
t が押されるか、フィールドで Enter キーが押されると、 が消えます。別のフィールド。setErro
テキストが入力されても、最初のフィールドのr はアクティブのままです。
EditText
この問題を修正するためにテキストを入力すると、検証できると思います。
これはこれを行う正しい方法ですか?
EditText toText = (EditText) findViewById(R.id.to);
EditText subjectText = (EditText) findViewById(R.id.subject);
if (toText.getText().length() == 0) {
toText.setError("Please enter a valid recipient");
}
else {
toText.setError(null);
}
if (subjectText.getText().length() == 0) {
subjectText.setError("Please enter a subject");
}
else {
subjectText.setError(null);
}
だから私が達成しようとしていること:
- ユーザーが toText にテキストを入力するのを忘れる
- ユーザーが [送信] をクリックすると、setError メッセージが表示される
- ユーザーが toText にテキストを入力する
- ユーザーが subjectText をタップ
- toText は引き続き setError を表示します
- このシナリオで setError を削除したい
次の場合、toText は setError を削除します。
- ユーザーが [送信] をもう一度クリックして、フィールドを再検証する
- ユーザーがキーボードの Enter キーを押して次のフィールドに進む