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