限制editext输入的字符数不超过140个字符

这个功能的实现也是查阅前辈们留下的资源,希望在此记录下来,供其他人查阅,希望可以帮助到需要的人。

代码如下:

该方法是借助EditText的TextWatcher来实现。


EditText comments;

//方法的引用

comments.addTextChangedListener(new MaxLengthWatcher(140, comments));


/*
     * 监听输入内容是否超出最大长度,并设置光标位置
     * */  
    public class MaxLengthWatcher implements TextWatcher {  
      
        private int maxLen = 0;  
        private EditText editText = null;  
          
          
        public MaxLengthWatcher(int maxLen, EditText editText) {  
            this.maxLen = maxLen;  
            this.editText = editText;  
        }  
      
        public void afterTextChanged(Editable arg0) {  
        }  
      
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,  
                int arg3) {  
        }  
      
        public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {  
            Editable editable = editText.getText();  
            int len = editable.length();  
            if(len > maxLen)  
            {  
                int selEndIndex = Selection.getSelectionEnd(editable);  
                String str = editable.toString();  
                //截取新字符串  
                String newStr = str.substring(0,maxLen);  
                editText.setText(newStr);  
                editable = editText.getText();  
                  
                //新字符串的长度  
                int newLen = editable.length();  
                //旧光标位置超过字符串长度  
                if(selEndIndex > newLen)  
                {  
                    selEndIndex = editable.length();  
                }  
                //设置新光标所在的位置  
                Selection.setSelection(editable, selEndIndex);  
                  
            }  
        }
      
    } 


效果,对输入框的字数进行限制,如果超过140个字符,字将输入不进去(输入框)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值