Edittext 设置setError()的详解

原创 2015年07月10日 09:49:22

实现Edittext  的错误时的提示,错误图标的位置边距得在xml的EditText中设置Layout_marginRight()设置右边距

      final EditText accountET = (EditText) findViewById(R.id.edit_account);//find要设置错误提示的编辑框
        accountET.setOnFocusChangeListener(new View.OnFocusChangeListener() {//设置状态改变监听器
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
                if (accountET.hasFocus()==false){
                    checkPhone(accountET);
                }else{
                    accountET.setError(null, null);//焦点聚焦时去除错误图标
                }
            }
        });

/**
     * 校验手机号是否合法
     **/
    private void checkPhone(EditText account) {
        String phoneNumber = account.getText().toString();
        if (!CommonUtil.validatePhoneNumber(phoneNumber)) {// 验证手机号是否合法

            drawable.setBounds(new Rect(0,0,drawable.getIntrinsicWidth(),drawable.getIntrinsicHeight()));          
            Drawable drawable = getResources().getDrawable(R.drawable.img_edit_error);//错误时要显示的图片
            //图片的大小,可调,四个参数为左上右下
            account.setError(“err”, drawable);//设置错误的时候不显示文本,只显示图片在android 4.4上的机必须要有类似err的文本才会显示

        }
    }

--------------------------------------------另加一个类----------------------------------------

public class CommonUtil {
/**
     * 验证手机号的格式是否合法
     * @param number
     * @return
     */
    public static boolean validatePhoneNumber(String number) {
        Pattern p = Pattern.compile("^((13[0-9])|(15[^4,\\D])|(18[0,5-9]))\\d{8}$");//正则表达式
        Matcher m = p.matcher(number);
        return m.matches();
    }
}

效果图为手机号位数不够错误提示,和重获焦点错误图标消失


相关文章推荐

Android EditText.setError() - 会弹出一个popupwindow,效果很好

SetError提供了以下两个方法: 1.显示自定义文字 public void setError (CharSequence error) 2.显示自定义文字和图标 public void ...

解决Android 中Edittext在执行setError时有时不显示文字

在使用EditText时可以使用setError来显示一个tip来提示用户,比如输入的格式不正确。而有时候tip中显示的内容和背景的颜色相同导致看不到提示的文字,这个是和使用的样式有关。但修改样式既麻...

EditText.setError无法显示,需要修改字体颜色的解决办法

EditText.setError无法显示是因为错误提示框的背景颜色和字体颜色一样了,只需要修改字体颜色就可以,修改之后效果如图 需要更改的代码如下 //定义错误内容 String err...

TextInputLayout setError后影响EditText设定的自定义背景问题解决方法

如图所见的红色背景问题,困扰了一整天,终于今日喜见云开。。。因为在TextInputLayout setError方法源码中有 // Set the EditText's background t...

解决Android 中Edittext在执行setError时有时不显示文字

在使用EditText时可以使用setError来显示一个tip来提示

从EditText设置setError不能显示提示文本说说Html的fromHtml用法

在安卓代码中有时对EditText进行判空操作的时候,一旦发现某个EditText为空时,会通过如下代码给用户一个提示: etName.setError("请输入用户名"); 但是有的时候会发现错误提...
  • piglite
  • piglite
  • 2016年03月10日 00:48
  • 475

[android] EditText的setError文字不显示问题

今天写代码,要edittext为空的时候给出提示,用android自带的setError函数,发现文本的颜色和背景的颜色相同,查了一下资料,贴出solution: 在  res/values...

自定义EditText实现输入错误变红的效果

这次做的项目设计给的效果图是这样的 不选中时线为灰色,获取焦点后高亮变化,若判断错误后将底部线条文字及清楚按钮都变成红色,同时从界面上面要滑动出错误文字提示。 为了改变EditText线条颜色真是尝...

TextView的setError方法

哈夫曼编码问题
  • W_ILU
  • W_ILU
  • 2016年03月14日 12:22
  • 1643

[Android] TextView.setError()(一)

前言今天讲述一下TextView.setError()这个方法。这个方法主要是作用是对用户友好提示一些信息。比如说在用户输入密码格式不正确的时候,以一种友好的界面形式展现出来。效果图方法实现首先看主A...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Edittext 设置setError()的详解
举报原因:
原因补充:

(最多只允许输入30个字)