private int num = 500;//详情描述限制的最大字数
etDetailDescription.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) { Editable editable = etDetailDescription.getText(); int len = editable.length(); if (len > num) { showToast("超出字数限制"); int selEndIndex = Selection.getSelectionEnd(editable); String str = editable.toString(); //截取新字符串 String newStr = str.substring(0, num); etDetailDescription.setText(newStr); editable = etDetailDescription.getText(); //新字符串的长度 int newLen = editable.length(); //旧光标位置超过字符串长度 if (selEndIndex > newLen) { selEndIndex = editable.length(); } //设置新光标所在的位置 Selection.setSelection(editable, selEndIndex); } } @Override public void afterTextChanged(Editable s) { } });