EditText禁止输入中文设置

首先有两种方式可以设置,在xml中和代码中都可以设置
在xml中设置的

  1. 在xml中设置
  2. 在代码中设置

    • -

    EditText有一个属性:android:digits属性
    这个属性是直接在里面添加你可以在输入框中输入的类型,举个栗子:

 - 只允许输入数字 android:digits="0123456789" 
 - 只允许输入数字和英文字母 android:digits="0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 
 - 只允许输入数字,英文字母和@.两个符号 ndroid:digits="0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@."

digits属性只能在xml中有,在代码中找不到。

inputType属性
inputType在xml中的属性值有:

inputType属性值        含义
number              用来输入数字
textCapCharacters   输入的全部字母大写
textCapWords        输入的每个单词首字母大写
textCapSentences    输入的每个句子首字母大写
textPassword        用来输入密码,所有输入的字符都会变成星号*
textVisiblePassword     用来输入密码,输入的字符原样显示
textEmailAddress    用来输入Email地址

如果android:inputType=”number”和android:digits同时设置,优先以android:digits输入的字符以android:digits配置为准

EidtText在代码中设置的属性是 inputType

edit.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

知道了设置EditText的InputType属性值,既可以通过xml中定义,也可以在代码中设置为InputType的某种值,但是到底这些值有哪些,以及分别对应的含义是什么,则可以参考官网:

TextView | Android Developers – android:inputType

最后需要注意在代码中给inputType中设置的时候,
不能成

InputType.TYPE_XXX_VARIATION_YYY,

而是要

InputType.TYPE_CLASS_XXX | InputType.TYPE_XXXX_VARAITION_YYY

如果错写成:

inputType = InputType.TYPE_DATETIME_VARIATION_TIME;

会导致EditText点击后,不显示输入法键盘,正确的应该写成:

inputType = InputType.TYPE_CLASS_DATETIME | InputType.TYPE_DATETIME_VARIATION_TIME;

就可以正常的显示键盘了。

在代码中还可以使用setKeyListener监听事件中的DigitsKeyListener设置只能输入数字:

        edit_name.setKeyListener(new DigitsKeyListener(false,true));//只可以输入数字和小数
        edit_name.setKeyListener(DigitsKeyListener.getInstance("0123456789"));//只能输入数字

还能使用setKeyListener中的NumberKeyListener
使用方法如下:

        /***
         * 只能输入小写字母和数字
         * @param v
         */
        public void numericOnlyListener(EditText v){
            v.setKeyListener(new NumberKeyListener() {

                @Override
                public int getInputType() {
                    // TODO Auto-generated method stub
                    return android.text.InputType.TYPE_CLASS_TEXT;
                }

                @Override
                protected char[] getAcceptedChars() {
                    // TODO Auto-generated method stub
                    char numberChars[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','1','2','3','4','5','6','7','8','9','0'};
                            return numberChars;
                }
            });
        }

numberChars[]数组中可以定义你输入框允许输入的字符,然后直接用就可以了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值