合并了网上的一些方法
private class EditChangedListener implements TextWatcher {
private CharSequence temp;//监听前的文本
private int editStart;//光标开始位置
private int editEnd;//光标结束位置
private final int charMaxNum = 28;
int length;
@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 (length < charMaxNum) {
if (s.toString().contains(" ")) {
String[] str = s.toString().split(" ");
String str1 = "";
for (int i = 0; i < str.length; i++) {
str1 += str[i];
}
name_et.setText(str1);
name_et.setSelection(start);
}
}
}
@Override
public void afterTextChanged(Editable s) {
editStart = name_et.getSelectionStart();
editEnd = name_et.getSelectionEnd();
length = name_et.length() + getChineseNum(name_et.getText().toString().trim());
if (length > charMaxNum) {
s.delete(editStart - 1, editEnd);
}
}
}
/**
* @param s
* @return
* @description 返回字符串里中文字或者全角字符的个数
*/
public static int getChineseNum(String s) {
int num = 0;
char[] myChar = s.toCharArray();
for (int i = 0; i < myChar.length; i++) {
if ((char) (byte) myChar[i] != myChar[i]) {
num++;
}
}
return num;
}