package com.xx.view; import android.content.Context; import android.text.InputFilter; import android.text.Spanned; import android.widget.Toast; public class MyLengthFilter implements InputFilter { private final int mMax; private Context context; private long lastTime = 0; public MyLengthFilter(int max, Context context) { mMax = max; this.context = context; } 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) { //提示 已达输入上限xx long curTime = System.currentTimeMillis()/1000; if(curTime - lastTime > 3) { String inputmax = context.getResources().getString(R.string.inputmax); Toast.makeText(context, inputmax + mMax, Toast.LENGTH_SHORT).show(); lastTime = curTime; } return ""; } else if (keep >= end - start) { return null; // keep original } else { keep += start; if (Character.isHighSurrogate(source.charAt(keep - 1))) { --keep; if (keep == start) { return ""; } } return source.subSequence(start, keep); } } /** * @return the maximum length enforced by this input filter */ public int getMax() { return mMax; } }
EditText et_item; et_item = itemView.findViewById(R.id.et_item); et_item.setMovementMethod(ScrollingMovementMethod.getInstance()); //et_item.setFilters(new InputFilter[]{new InputFilter.LengthFilter(70)}); et_item.setFilters(new InputFilter[]{new MyLengthFilter(70, mContext)});