阅读背景:

Android EditText 字数限制

来源:互联网 
mChatMsgEt.addTextChangedListener(new TextWatcher() {
            private int limit = 200; // 字数限制
            private CharSequence beforeSeq; // 保存修改前的值

            private int afterStart;
            private int afterCount;

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                if(s.length() >= limit && after>count){//如果当前字符数大于等于限制数,且字符数要增加时,保存原串用于还原
                    beforeSeq = s.subSequence(start, start+count);
                    toastMsg("不能超过"+limit+"字!");
                }
            }
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                if(count > before && s.length() > limit){//记录本次修改影响范围
                    afterStart = start;
                    afterCount = count;
                }
                mMsgLimitTv.setText(String.format("%s/"+limit, s.length()));
            }
            @Override
            public void afterTextChanged(Editable s) {
                if(s.length() > limit){
                    try {
                        s.replace(afterStart, afterStart + afterCount, beforeSeq);
                    } catch (java.lang.IndexOutOfBoundsException e){
                        Log.d(TAG, Log.getStackTraceString(e));
                    }
                }
            }
        });mChatMsgEt.addTextChangedListener(new TextWatch



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: