1

検証した編集テキストがあります。入力したデータがフォーマットに対応していない場合は背景を赤に設定し、対応している場合は明るい灰色に戻しますが、長方形は消えます。入力されたデータの形式が正しい場合、プロパティを元の値にリセットできるかどうか疑問に思っていました。これが私が今していることです

EditText name = (EditText) findViewById(R.id.Name);
if (name.getText().length() < 1)
{
    error = true;
    unit.setBackgroundColor(Color.RED);
}
else
{
    //instead of this line reset edittext properties
    unit.setBackgroundColor(Color.LTGRAY);
}
4

5 に答える 5

0

代わりに PorterDuff を使用できます。明確な方法があります: http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html

色を設定するには:

name.getBackground().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN);

色を削除するには:

name.getBackground().clearColorFilter();
于 2015-08-05T14:12:29.070 に答える
0

editText のステータスを変更する前に保存し、必要なときに復元できます。

private Drawable originalDrawable;

EditText name = (EditText) findViewById(R.id.Name);
if (name.getText().length() < 1) {
    if (originalDrawable == null) {
        originalDrawable = unit.getBackground();
    }
    error = true;
    unit.setBackgroundColor(Color.RED);
}
else {
    //reset editText 
    text.setBackgroundDrawable(originalDrawable);
}
于 2016-12-13T15:46:41.413 に答える
0

あなたが試すことができます:

editText.setText("");
于 2013-05-30T07:58:32.070 に答える
0

背景を変更してEditTextいるため、Android のデフォルトの背景を上書きしています。
手動で他の背景に変更する必要があります。のメソッドを
使用して保存できます。getBackground()EditText

于 2013-05-30T08:05:31.533 に答える
0

setError()の上にエラーメッセージを表示しEditText、内容が変わると自動的に削除する方法をお勧めしますEditText。これは、検証が失敗したことをユーザーに示す標準的な方法です。

于 2013-05-30T08:01:01.027 に答える