2

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

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

2 回答 2

0

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

但是对于自定义背景颜色,您应该制作自己的自定义弹出窗口。有关更多信息,请通过此链接:- 如何在 android 中将样式写入 EditText 的错误文本?

于 2014-08-29T11:57:56.513 回答
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;
    }
于 2015-07-15T07:09:45.603 回答