editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (editText.hasFocus()==false){
checkPhoneIsLegal(editText);
}else {
editText.setError(null,null);
}
}
});
private void checkPhoneIsLegal(EditText editText) {
String phoneNum=editText.getText().toString();
if (!validatePhoneNumber(phoneNum)){
Drawable drawable = getResources().getDrawable(R.drawable.iconfont_user);//获取图片资源
/**
* Drawable直接get出来是没有边界的,就不能显示出来,需要通过setBounds方法加上边界,才能正常显示!
* 当然如果不设置图片也可以,这样显示的是一个默认的感叹号图标!
*/
drawable.setBounds(0, 0, 72, 72);
editText.setError("手机号码错误",drawable);
}
}
//验证手机号的格式是否合法
private 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();
}
网友评论