EditText输入限制setFilters

When reach max,pop up hint window:

private static String invalid_char[] ={"\\", "/", ":", "*", "?", "\"", "<", ">", "|", ";", "\n" }; private static Toast itoast = null; private static Toast mtoast = null; itoast = Toast.makeText(this, R.string.invalid_character, Toast.LENGTH_SHORT); mtoast = Toast.makeText(this, R.string.max_char_reached_msg, Toast.LENGTH_SHORT); editText.setFilters(getEditTextFilter()); static public InputFilter[] getEditTextFilter(){ InputFilter[] FilterArray = new InputFilter[2]; //add by dan.yin 11-12-6 //limit the input length class SizeFilter implements InputFilter { private int mMax; public SizeFilter(int max) { mMax = max; } 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) { mtoast.cancel(); mtoast.show(); return ""; } else if (keep >= end - start) { return null; } else { return source.subSequence(start, start + keep); } } } FilterArray[0] = new SizeFilter(50); //FilterArray[0] = new InputFilter.LengthFilter(50); FilterArray[1] = new InputFilter() { public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { for(int i=0; i<invalid_char.length; i++){ if(source.toString().indexOf(invalid_char[i]) >= 0){ itoast.cancel(); itoast.show(); return ""; } } return null; } }; return FilterArray; }


==========================another method============================================================

private Toast mToast = null; //mPlaylist.setFilters(new InputFilter[]{new InputFilter.LengthFilter(30)}); //256 mPlaylist.setFilters(new InputFilter[] { new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { int keep = 30 - (dest.length() - (dend - dstart)); if (keep <= 0) { showToast(R.string.max_char_reached_msg); return ""; } else if (keep >= end - start) { return null; }else { return source.subSequence(start, start + keep); } } } }); private void showToast(int resId) { if(mToast == null) { mToast = Toast.makeText(this, resId, Toast.LENGTH_SHORT); } else{ mToast.cancel(); mToast.setText(resId); } mToast.show(); }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值