EditText限制输入字母和数字_EditText限制字符类型的几种方式
2018-03-13 13:23:35  By: dwtedx

最近的项目上需要限制EditText输入字符的类型,就把可以实现这个功能的方法整理了一下:

1、第一种方式是通过EditText的inputType来实现,可以通过xml或者java文件来设置。假如我要设置为显示密码的形式,可以像下面这样设置

在xml中

android:inputType="textPassword"


在java中

myEditText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);


当然,还有更多的其他属性用来进行输入设置。


2、第二种是通过android:digits 属性来设置,这种方式可以指出要显示的字符,比如我要限制只显示数字,可以这样:

android:digits="0123456789"


如果要显示的内容比较多,就比较麻烦了,将要显示的内容依次写在里面。


3、通过正则表达式来判断。下面的例子只允许显示字母、数字和汉字。

public static String stringFilter(String str)throws PatternSyntaxException{     

    // 只允许字母、数字和汉字      
    String   regEx  =  "[^a-zA-Z0-9u4E00-u9FA5]";                     
    Pattern   p   =   Pattern.compile(regEx);     
    Matcher   m   =   p.matcher(str);     
    return   m.replaceAll("").trim();     

}


然后需要在TextWatcher的onTextChanged()中调用这个函数,

@Override  
public void onTextChanged(CharSequence ss, int start, int before, int count) {  
    String editable = editText.getText().toString();  
    String str = stringFilter(editable.toString());
    if(!editable.equals(str)){
        editText.setText(str);
        //设置新的光标所在位置  
        editText.setSelection(str.length());
    }
}  


以上方法都可以实现现在EditView输入类型,但个人比较推荐第二种方案。上面的代码可以限制输入的字符数最大为10。

若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力

想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)

或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)

如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教

为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)

感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛


快速评论


技术评论

  • 该技术还没有评论、赶快抢沙发吧...
DD记账
top
+