直接上代码
package cn.yhsh.keyeventdemo;
import android.text.InputFilter;
import android.text.Spanned;
/**
* @author xiayiye
* @date 2022/4/2 13:23
*/
public class SearchKeyWorldLengthFilter implements InputFilter {
private final int mMax;
public SearchKeyWorldLengthFilter(int max) {
mMax = max;
}
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
int keep = mMax - (dest.length() - (dend - dstart));
if (keep <= 0) {
//这里,用来给用户提示,当然可以替换成 更加优雅的形式
if (null != lengthListener) {
lengthListener.pass();
}
return "";
} else if (keep >= end - start) {
return null;
} else {
keep += start;
if (Character.isHighSurrogate(source.charAt(keep - 1))) {
--keep;