EditText的方法onTextChanged的参数含义

方法:

onTextChanged(CharSequence text,int start,int lengthBefore,int lengthAfter);//参数名也可能是其他命名。

含义:

0、这个方法表示的是在EditText的内容改变后的回调,即输入或者删除操作完成后的回调。

1、参数text:表示当前显示的EditText内容,即编辑完成后的内容。

2、参数start、lengthBefore、lengthAfter:这三个参数可以看做是一组的,它们表示的都是和输入或删除的那一段内容相关的,都是针对改变的内容的参数。

  • start:表示数据改变后,添加或删除的内容,在整个数据中的位置下标。
  • lengthBefore:表示改变的内容,改变前的长度(只针对删掉的或输入上的内容)。
  • lengthAfter:表示改变的内容,改变后的长度(只针对删掉的或输入上的内容)。

示例一:

EditText中的原内容是“123”,现在在“2”的后面输入“4”。

那么在输入完“4”之后,回调方法时,各个参数的值是:

text="1243";//改变后的内容。

start=2;//输入的"4"在整个字符串中的下标是2。

lengthBefore=0;//输入的内容之前长度为0。

lengthAfter=1;//输入的内容输入后长度是1。

#这两个表示的是“4”在输入前和输入后的长度。如果是在“2”的后面直接粘贴上“45”两个数,那么这四个参数是:

text="12453";start=2;lengthBefore=0;lengthAfter=2;

示例二:

EditText中的原内容是“12345”,现在把光标移到“4”后面,delete删除“4”。

那么在删除掉“4”之后,回调方法时,各个参数的值是:

text="1235";//改变后的内容。

start=3;//被删除的"4"在整个字符串中的下标是3。

lengthBefore=1;//删除的内容之前长度为1。

lengthAfter=0;//删除的内容输入后长度是0。

#这两个表示的是“4”在删除前和删除后的长度。如果是多选一次删除“45”两个数,那么这四个参数是:

text="123";start=3;lengthBefore=2;lengthAfter=0;

猜你喜欢

转载自blog.csdn.net/aianzxy/article/details/93158846
今日推荐