public class LengthFilter implements InputFilter {
private int mMax;
public LengthFilter(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) {
Toast.makeText(mContext, “密码超过32位!”, Toast.LENGTH_SHORT).show();
return "";
} else if (keep >= end - start) {
return null;
} else {
keep += start;
if (Character.isHighSurrogate(source.charAt(keep - 1))) {
--keep;
if (keep == start) {
return "";
}
}
return source.subSequence(start, keep);
}
}
}
然后给EditText增加一句话:editText.setFilters(new InputFilter[] {new LengthFilter(32)});