EditText中的InputFilter

总的来说,EditText中的InputFilter就是用于EditText输入或者删除时内容的替换的。

EditText中的InputFilter使用:

对“每一次输入”进行一次过滤,若重写filter()返回null,则输入的文本不会被替换掉,而若filter()返回一个String,则所输入的内容将会被替换掉;

editText.setFilters(new InputFilter[]{new MyInnputFilter()});

private class MyInputFilter implements InputFilter {

String ch = null;

String str = "dsdf";

@Override

public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

if (source.equals(" ") || source.toString().contentEquals("\n")) return ""; //使输入的空格或回车失效

//最后输入的一个字符

if (dest.length() >str.length()) {

return "1";

}

if (ch.equals(source)) {

Toast.makeText(MainActivity.this, "符合要求",

Toast.LENGTH_SHORT).show();

//符合规定要求的字符以原输入显示

return dest.subSequence(dstart, dend) + source.toString();

} else {

Toast.makeText(MainActivity.this, "不符合要求喔~",

Toast.LENGTH_SHORT).show();

//如果没有按要求输入字符,则该字符被“*”代替,并显示

return "2";

}

}

其中参数解释:

source    新输入的字符串

start    新输入的字符串起始下标,一般为0

end   新输入的字符串终点下标,一般为source长度-1

dest      之前输入文本框内容

dstart和dend在输入时值相同,都表示之前内容长度,但若在删除内容时,dstart表示删除后字符串的长度,dend则表示删除前的长度;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,665评论 0 17
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,789评论 0 33
  • 首页 资讯 文章 资源 小组 相亲 登录 注册 首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他...
    Helen_Cat阅读 3,955评论 1 10
  • 夕阳透过窗台将余晖洒在女孩的脸上女孩正低头认真的画着太阳她用笔勾勒着太阳刚刚升起时俊俏的 模样夕阳正悄悄地走近 ...
    廖心心阅读 811评论 5 4