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();
}
分享到:
相关推荐
EditText输入限制,比如只能输入6个汉字或12个英文字母、数字
edittext输入超过长度自动缩小文字大小并动态记录可输入文字
android 里,我们常需要限制向EditText输入的内容,在此,我总结了4中可行的方法,希望可以帮助大家
Android限制只能输入中文的EditText,对输入的内容进行监听拦截。
在afterTextChanged函数中,更新还能输入的字数,达到限制字数后,删除输入字符。以达到,视觉上,无法输入的效果。
Android EditText 正则表达式 限制数字、字母、字符 输入 密码框
android EditText 限制最大输入字符,是字符不是长度哦
editText限制输入的4种方法,有需要的可以看看
Edittext限制数字、字母已经很好解决,这里为你提供了限制输入Emoji表情符的Edittext设置。
EditText监听输入完成,监听edittext,精确判断什么时候输入完成
自己做的一个自定义控件,里面主要是自定以弹出框,对edittext的回调处理和edittext输入时自动千分位分隔和金额限制
edittext输入图片和文字;图片经过压缩、缩小
这是一个简单的工具类,Edittext的字符限制。可以限制最大字符数和最小字符数。
本文有代码段,并进行详细的注释 和讲解 在开发应用的时候,经常会限制用户输入的字数,比如发表评论或者其它什么的,下面来个简单的demo
一个简单的小Demo,能够限制EditText的输入字符数并对用户进行提示。博客文章地址:http://blog.csdn.net/Lindroid20/article/details/56845775
Android EditText限制输入字符的方法总结 最近项目要求限制密码输入的字符类型, 例如不能输入中文。 现在总结一下EditText的各种实现方式, 以比较各种方法的优劣。 第一种方式: 设置EditText的inputType属性...
由于《android EditText 限制输入的4种方法》版本中,本人有描述错误,但不能删除,故重新修改了重新上传的。请谅解,希望能给你们带来帮助
android 输入框EditText禁止输入Emoji表情符,博客地址:http://blog.csdn.net/elsdnwn/article/details/45390771
解决在在Edittext输入的时候,输入框被软键盘遮挡部分内容的问题
监听edittext输入的字符长度,可自行添加需要的操作