EditText 設定字數限制,超過字數限制時 toast 提示並且輸入無效
阿新 • • 發佈:2019-02-01
以下只是我解決問題過程中的一點點個人總結,點滴積累,貴在堅持,感謝你的閱覽!
以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提示已超過輸入上限 } } });