最大字符数:
private final int INT_MAX_NUM = 256;
private class EditChangeLisener implements 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) { Editable editable = mEditInput.getText(); int len = editable.length(); if(len > INT_MAX_NUM) { int selEndIndex = Selection.getSelectionEnd(editable); String str = editable.toString(); //截取新字符串 String newStr = str.substring(0,INT_MAX_NUM); mEditInput.setText(newStr); mstrInput = newStr; editable = mEditInput.getText(); //新字符串的长度 int newLen = editable.length(); //旧光标位置超过字符串长度 if(selEndIndex > newLen) { selEndIndex = editable.length(); } //设置新光标所在的位置 Selection.setSelection(editable, selEndIndex); return; } mstrInput = editable.toString(); } @Override public void afterTextChanged(Editable s) { } }
mEditListener = new EditChangeLisener(); mEditInput.addTextChangedListener(mEditListener);
上述代码即可实现!!
本文介绍了一种在Android应用中限制EditText组件输入字符数量的方法。通过自定义监听器,当输入内容超过设定的最大长度时,自动截断并调整光标位置,确保用户输入符合要求。
1223

被折叠的 条评论
为什么被折叠?



