如何重置edittext的样式?

时间:2013-05-30 07:55:37

标签: android

我有一个我验证的编辑文本。如果输入的数据与格式不对应,我将背景设置为红色,当它对应时我将其设置为浅灰色,但矩形消失。 当输入的数据格式正确时,我想知道是否可以将其属性重置为其原始值。 这就是我现在正在做的事情

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);
}

5 个答案:

答案 0 :(得分:0)

您可以尝试:

editText.setText("");

答案 1 :(得分:0)

我建议使用setError()方法,该方法会在EditText上方显示错误消息,并在EditText的内容发生更改时自动将其删除。这是向用户显示验证失败的标准方法。

答案 2 :(得分:0)

您正在更改EditText背景,因此您将覆盖Android的默认背景 您需要手动将其更改为其他背景 您可以使用getBackground()中的EditText方法保存它。

答案 3 :(得分:0)

您可以使用PorterDuff - 它有一个明确的方法:http://developer.android.com/reference/android/graphics/PorterDuff.Mode.html

设置颜色:

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

删除颜色:

name.getBackground().clearColorFilter();

答案 4 :(得分: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);
}