Android TextWatcher使用详解

最近改造公司的一个登陆注册页面,里面有很多涉及到的EditView状态改变的操作,使用到了TextWatcher,原本觉得很简单,里面的参数看命名就知道它的意思,但是写着写着就感觉不是那么回事,所以就专门写下来,跟大家分享一下,不知道大家有没有这样的错误认识。本人菜鸟一枚,不喜勿喷! 页面很简单,就是一个EditText。

1、输入1:
输入1log日志
beforeTextChange : start=0,count=0,after=1
onTextChange : text=1,start=0,before=0,count=1

2,输入2:
输入2log日志

beforeTextChange : beforeText =1,start=1, count=0, after=1
onTextChange : text=12,start=1,before=0,count=1

3,输入3:
输入3log日志
beforeTextChange : beforeText =12,start=2, count=0, after=1
onTextChange : text=123,start=2, before=0, count=1

4,选择3,输入4:
选择3输入4
beforeTextChange : beforeText =123,start=2,count=1,after=1
onTextChange : text=124, start=2, before=1, count=1

5,选择24,输入5:
选择24,输入5
beforeTextChange : beforeText =124,start=1,count=2,after=1
onTextChange : text=15, start=1, before=2, count=1

6,选择5,粘贴678:
选择5,粘贴678
beforeTextChange : beforeText =15,start=1,count=1,after=3
onTextChange : text=1678, start=1, before=1, count=3

好了,测试了这么多,我们来总结一下:

beforeTextChange:beforetext: 改变之前的内容
start:从第几个字符之后开始改变
count:总共改变了原本的多少个字符
after:新增加了几个字符
一般通过after-count就知道这次输入到底增加了多少个;
onTextChange:
start:从原来的第几个字符之后开始改变;
before:总共改变了原本的多少个字符;
count:总共新加了多少个字符;

最后测试一下我们的结论:

原本的只有字符123456,选择345,粘贴789;
这里写图片描述
beforeTextChange : beforeText =123456,start=2,count=3,after=3

beforeTextChange,原本的字符为123456;
start代表从字符串的第二个字符“2”之后开始改变;
count代表总共改变了字符“2”之后的“345”三个字符;
after代表在原来的“345”的位置新增3个字符。

onTextChange : text=127896, start=2, before=3, count=3

onTextChange:改变后的字符串为127896,把原来从第二个字符“2”之后的三个字符“345”改变成新的三个字符“789”。

文章只重点介绍了onTextChange和beforeTextChange,而afterTextChange里面只有一个Editable,比较简单,所以就没讲到。第一次写博客,写的不好,还请见谅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>