2013-05-30 47 views
1

我有一個編輯文本,我驗證。如果輸入的數據沒有響應格式,我將背景設置爲紅色,當它設置爲淺灰色時,矩形會消失。 我想知道當輸入的數據格式正確時,是否可以將它的屬性重置爲其原始值。 這是我在做什麼現在如何重置edittext的樣式?

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

你是什麼意思重置? – MDMalik

+0

你的意思是什麼「矩形消失」?所以當它設置爲RED時,一切都很好,但是將其設置爲LTGRAY時,框的邊框會消失? – randomizer

+0

是邊框消失 – Liviu

回答

0

你可以試試:

editText.setText(""); 
+0

我想重置佈局而不是文本,將背景恢復爲原始樣式 – Liviu

+0

好吧,最終可繪製oldBackground = activity.findViewById(id).getBackground(); if(correct){text.setBackgroundDrawable( oldBackground);} – SamDroid

+0

邊框仍然消失 – Liviu

0

我會建議使用setError()方法,它顯示EditText上述錯誤信息,並自動刪除它的內容時EditText的變化。這是向用戶顯示驗證失敗的標準方法。

+0

我需要將背景設置爲紅色,然後恢復爲原始編輯文本,我的問題是邊框在更改回原始背景顏色時消失 – Liviu

0

您正在更改EditText背景,以便重寫android的默認背景。
您需要手動將其更改爲其他背景。
您可以使用EditText中的getBackground()方法保存它。

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