2013-04-23 2 views
1

Я хочу изменить цвет текста и цвета сообщения об ошибке для недействительного адреса электронной почты. Я попытался, но мое текстовое сообщение не отображает какой-либо контент. вот мой код.Change EditText.setError() background and error message android

общественного класса TextboxValidation {

//validating email address 

    public static boolean validateEditText(EditText editText) { 
     boolean valid = true; 
     Context context; 

     String text = editText.getText().toString(); 

     boolean isEmail = (editText.getInputType() & InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS) == InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS; 
     boolean isNumeric = (editText.getInputType() & InputType.TYPE_NUMBER_FLAG_DECIMAL) == InputType.TYPE_NUMBER_FLAG_DECIMAL; 

     if (TextUtils.isEmpty(text)) { 
      if (!isNumeric || !TextUtils.isDigitsOnly(editText.getHint())) { 
       valid = false; 
      } 

     } else if (isEmail) { 
      valid = android.util.Patterns.EMAIL_ADDRESS.matcher(text).matches(); 
     } 

     if (!valid) { 
      context = editText.getContext(); 

      if (isEmail) { 

       int ecolor = R.color.black; // whatever color you want 
       String estring = "Veuillez saisir une addresse email valide"; 
       ForegroundColorSpan fgcspan = new ForegroundColorSpan(ecolor); 
       SpannableStringBuilder ssbuilder = new SpannableStringBuilder(estring); 
       ssbuilder.setSpan(fgcspan, 0, estring.length(), 0); 

       editText.setError(ssbuilder); 
      } else { 
       editText.setError("Le champ ne peut etre vide."); 
      } 
      return false; 
     } 

     editText.setError(null); 
     return true; 
    } 
} 
+0

http://stackoverflow.com/a/5232885/1168654 –

+0

[Это] (https://code.google.com/p/android/issues/detail?id=10378) ответ должен помочь вам для решения проблемы – FSRezende

+0

Отметьте этот ответ: http://stackoverflow.com/a/18974425/1318946 –

ответ

0

Вы можете изменить цвет текста, используя HTML Font Tag.

Но для настройки цвета фона вы должны сделать свой собственный всплывающий экран. Для получения дополнительной информации, пожалуйста, пройдите по этой ссылке: - How to write style to error text of EditText in android?

0

Вы можете сделать это следующим образом.

if (TextUtils.isEmpty(cashierid)) { 
     cid.setError(Html.fromHtml("<font color='red'>Username can't be empty</font>")); 
     return; 
    } 
else if (TextUtils.isEmpty(cashierpwd)) { 
     cpwd.setError(Html.fromHtml("<font color='red'>Password can't be empty</font>")); 
     return; 
    }