监视edittext的长度

来源:互联网 发布:mach3如何编程 编辑:程序博客网 时间:2024/06/05 06:37
package com.ejoy.adpter;import android.text.Editable;import android.text.Selection;import android.text.TextWatcher;import android.widget.EditText;public class EditTextMaxLengthWatcher implements TextWatcher {// 最大长度private int maxLen;// 监听改变的文本框private EditText editText;/** * 构造函数 */public EditTextMaxLengthWatcher(int maxLen, EditText editText) {this.maxLen = maxLen;this.editText = editText;}public void onTextChanged(CharSequence ss, int start, int before, int count) {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);}}public void afterTextChanged(Editable s) {}public void beforeTextChanged(CharSequence s, int start, int count,int after) {}}