TextWatcher回调方法参数学习记录

代码

 editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                Log.d(TAG, "beforeTextChanged: " + "s=" + s + " start=" + start + " count=" + count + " after=" + after);
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                Log.d(TAG, "onTextChanged: " + "s=" + s + " start=" + start + " before=" + before + " count=" + count);
            }

            @Override
            public void afterTextChanged(Editable s) {
                Log.d(TAG, "afterTextChanged: " + s.toString());
            }
        });
  • 键盘输入1
07-17 11:49:15.074 4184-4184/com.example.asher.edittextstudy D/MainActivity: beforeTextChanged: s= start=0 count=0 after=1
07-17 11:49:15.074 4184-4184/com.example.asher.edittextstudy D/MainActivity: onTextChanged: s=1 start=0 before=0 count=1
07-17 11:49:15.074 4184-4184/com.example.asher.edittextstudy D/MainActivity: afterTextChanged: 1
  • 键盘输入2
07-17 11:50:10.651 4184-4184/com.example.asher.edittextstudy D/MainActivity: beforeTextChanged: s=1 start=1 count=0 after=1
07-17 11:50:10.651 4184-4184/com.example.asher.edittextstudy D/MainActivity: onTextChanged: s=12 start=1 before=0 count=1
07-17 11:50:10.652 4184-4184/com.example.asher.edittextstudy D/MainActivity: afterTextChanged: 12
  • 键盘删除2
07-17 11:50:38.766 4184-4184/com.example.asher.edittextstudy D/MainActivity: beforeTextChanged: s=12 start=1 count=1 after=0
07-17 11:50:38.767 4184-4184/com.example.asher.edittextstudy D/MainActivity: onTextChanged: s=1 start=1 before=1 count=0
07-17 11:50:38.767 4184-4184/com.example.asher.edittextstudy D/MainActivity: afterTextChanged: 1

总结

对于beforeTextChanged的四个参数s,start,count,after的意思分别是
s:改变之前的editext的值
start:改的内容的实际开始位置,比如输入1时,从位置0开始添加start为0,输入2时从位置1开始添加,start就是1
count:count是指被改变的字符的总长度,比如最开始输入1是,由于edittext最初始是空的,是从空字符串变成1,则count是0,而输入2时,变化的效果是1后面的空字符串变成2,则count也是0
after:after是指改变之后替换原先内容的字符串,比如输入1,是空字符串变成1,则after是1,而输入2时,是1后面的空字符串变成2,则after也是1

对于onTextChanged的三个参数s,start,before,count的意思分别是
s:改变之后的字符串
start:和上面beforeTextChanged意思一样
before:和上面beforeTextChanged的count意思一样
count:和上面beforeTextChanged的after意思一样

对于afterTextChanged的参数s的意思是
s:最终的字符串内容

你可能感兴趣的:(TextWatcher回调方法参数学习记录)