beforeTextChanged和onTextChanged 参数的理解

本文详细解释了AndroidTextWatcher接口中的beforeTextChanged和onTextChanged方法,分别描述了字符串变化前后的处理过程,以及start、count、after参数的作用。
摘要由CSDN通过智能技术生成

TextWatcher:
beforeTextChanged(CharSequence s, int start, int count, int after)
s:变化之前的字符串
start:从哪个位置开始变化的
count:原有s字符串从start开始将要变化的数量
after:新加入的用来替换原有start+count位置字符的字符的数量。

即:s中start+count位置的字符将要被变化之后的start+after 位置字符替换

例如1:s为123,再3之后将要追加4 之后变为 1234
beforeTextChanged回调
s:123 。未变化之前的字符
start:3 。 变化开始的位置
count:0。因为”s“内容 并未有修改 所以数量为0
after:1。新加入的4用来替换3+0上位置的字符。数量为1。

即:目前s中start+count位置的字符已经替换了原先start+before 位置的字符

例如2:s为123,现在选中23并替换为4 之后变为14
beforeTextChanged回调
s:123 。变化之前的字符
start:1 。从2开始变化的 原先2的位置为2
count:2。原字符 s 内容发生了变化,将要从123 变为”1“,没写错就是 ”1“(4为新要加入s的字符,咱们先说s第一次的变化,加入4是第二次的变化),变化的数量为2。
after:1。新加入的字符4用来替换23,长度为1

/**************************************************************************************/
onTextChanged(CharSequence s, int start, int before, int count)
s:变化之后的字符串
start:从哪个位置开始变化的
before:新加入的用来替换原先start+before位置字符的字符的数量。
count:原有s字符串从start开始已经变化了的数量

例如1:s为123,再3之后将要追加4 之后变为 1234
onTextChanged回调
s:1234 。变化后的字符
start:3 。 变化开始的位置
before:0。新加入的4用来替换3+0上位置的字符。3+0位置之前没字符 所以为0。
count:1。因为s变化为了1234 增加了1

例如2:s为123,现在选中23并替换为4 之后变为14
onTextChanged回调
s:14 。变化之后的字符
start:1 。从2开始变化的 原先2的位置为2
before:2。新加入的用来替换原先start+before位置字符的字符的数量。替换的是23所以为2
count:1。新加入的字符4用来替换23,长度为1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值