更改 EditText.setError() 背景和错误消息 android

Posted

技术标签:

【中文标题】更改 EditText.setError() 背景和错误消息 android【英文标题】:Change EditText.setError() background and error message android 【发布时间】:2013-04-16 11:59:03 【问题描述】:

我想更改无效电子邮件地址的错误消息的文本和背景颜色。我试过了,但我的短信没有显示任何内容。这是我的代码。

public class 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;
    

【问题讨论】:

***.com/a/5232885/1168654 This 答案应该可以帮助您解决问题 查看我的答案:***.com/a/18974425/1318946 【参考方案1】:

你可以这样做。

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;
    

【讨论】:

【参考方案2】:

您可以使用 HTML 字体标签更改文本颜色。

但是要自定义背景颜色,您应该制作自己的自定义弹出窗口。 欲了解更多信息,请通过此链接:- How to write style to error text of EditText in android?

【讨论】:

以上是关于更改 EditText.setError() 背景和错误消息 android的主要内容,如果未能解决你的问题,请参考以下文章

EditText.setError()的弹出消息布局看起来很奇怪

EditText setError 没有留在盒子上

Android怎么动态更改actionbar的背景颜色

原始背景都不好看,如何更改PDF背景呢?

在Ubuntu里 可以任意更改“终端”背景颜色教程

在 iOS 中使用动画更改标签背景颜色