EditText 设置字数限制,超过字数限制时 toast 提示并且输入无效

来源:互联网 发布:linux文件强制锁 编辑:程序博客网 时间:2024/05/21 17:41

以下只是我解决问题过程中的一点点个人总结,点滴积累,贵在坚持,感谢你的阅览!


以45个字符限制为例:

final int maxInputCharCount = 45;//定义一个 int 常量,取值45,表示字符限制为45
mEditText.addTextChangedListener(new TextWatcher() {            @Override            public void beforeTextChanged(CharSequence s, int start, int count, int after) {            }            @Override            public void onTextChanged(CharSequence s, int start, int before, int count) {                if(s.length() > maxInputCharCount){                    int c = count - (s.length() - maxInputCharCount);                    s = s.subSequence(0, start + c).toString() + s.subSequence(start + count, s.length()).toString();                    mEditText.setText(s);                    mEditText.setSelection(start + c);                }            }            @Override            public void afterTextChanged(Editable s) {                String editable = mEditText.getText().toString();                if (!editable.equals(str)) {                    mEditText.setText(str);                    int length = mEditText.getText().toString().length();                    if (length > 0 && length <= maxInputCharCount) {                        mEditText.setSelection(length);                    }                }                int leftLength = maxInputCharCount - mEditText.length();                if(leftLength == 0){                    //Toast提示已超过输入上限                }            }        });


原创粉丝点击