76

わかりました。EditTextフィールドとボタンしかありません。ボタンを押すとAsyncTaskがトリガーされます。

EditText playerName = (EditText)findViewById(R.id.playerEditText);

if(playerName.getText().toString().length() == 0 )
    playerName.setError("Player name is required!");
else {
    // do async task
}

問題は、検索に有効なテキストを入力した後もエラーメッセージが表示されたままになることです。EditTextが空でなくなったらすぐにエラーを削除する方法はありますか?

4

7 に答える 7

148

else ブラケットに を入れplayerName.setError(null)ます。これにより、エラーがクリアされます。

于 2012-07-24T23:56:35.240 に答える
54

API ドキュメント: 「キー イベントによって TextView のテキストが変更されると、アイコンとエラー メッセージは null にリセットされます。」そうではありませんが、これはバグと見なすことができます。

textNoSuggestions、textEmailAddress、textPassword などの inputType を使用すると、文字が入力された後にエラーが設定されなくなります。ほぼ文書化されていますが、正確ではありません-文字を削除すると、エラーが残ります。addTextChangedListener と setError(null) を使用した簡単な回避策で、約束された動作を実現できるようです。

また、Android 4.2 でアイコンが失われるという投稿もあります。したがって、注意して使用してください。

于 2014-05-11T23:56:10.577 に答える
3

エラーメッセージを非表示にしたい場合は、編集ボックスに onclicklistener を適用してから

editTextName.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            editTextName.setError(Null)
        }
    });
于 2015-04-15T12:34:58.127 に答える