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

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


TextView的setError方法

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

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

SetError提供了以下两个方法: 1.显示自定义文字 public void setError (CharSequence error) 2.显示自定义文字和图标 public void ...
  • wawxf2008
  • wawxf2008
  • 2015年02月10日 16:20
  • 6100

SetErrorMode

1. SetErrorMode:   原型: [cpp] view plain copy UINT WINAPI SetErrorMode( _In_...
  • chao56789
  • chao56789
  • 2016年07月11日 11:27
  • 577

错误记录seterror的文字不显示

今天开发时遇到个小问题,view.seterror的文字由于和theme重叠而无法显示,以前就遇到过,不过想换种方法。 有人说在style里面加@android:color/primary_text...
  • heaimnmn
  • heaimnmn
  • 2014年05月29日 11:23
  • 1067

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

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

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

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

Android 4.0+ EditText.setError("错误提示信息")不显示文字的解决方法

不知道算不算是Android的bug,其实文字是显示了,只不过颜色和背景色一样都是白色的,所以看不到文字内容. 只好格式化文字显示了: CharSequence html1 = Html....
  • kxl2005
  • kxl2005
  • 2015年04月20日 17:30
  • 378

Edittext的seterror方法不显示

Edittext的seterror方法可以用来提示输入显示一个tip来提示用户,比如输入的格式不正确。而有时候tip中显示的内容和背景的颜色相同导致看不到提示的文字,这个是和使用的样式有关。但修改样式...
  • zzn4951551
  • zzn4951551
  • 2015年11月18日 15:31
  • 272

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

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

[Android] TextView.setError()(一)

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

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