addTextChangedListener(new TextWatcher()){}

参考:【Android】关于addTextChangedListener()方法的上机记录

addTextChangedListener的监听:

        mEtTest.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            //这个方法被调用,说明在s字符串中,
            //从start位置开始的count个字符即将被长度为after的新文本所取代。
            //在这个方法里面改变s,会报错。
                Log.e("111", "1=====================================================");
                Log.e("111", "1==beforeTextChanged , s==" + s.toString());
                Log.e("111", "1==beforeTextChanged ,start==" + start);
                Log.e("111", "1==beforeTextChanged ,count==" + count);
                Log.e("111", "1==beforeTextChanged ,after==" + after);
            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            //这个方法被调用,说明在s字符串中,
            //从start位置开始的count个字符刚刚取代了长度为before的旧文本。
            //在这个方法里面改变s,会报错。
                Log.e("111", "2==onTextChanged ,s==" + s.toString());
                Log.e("111", "2==onTextChanged ,start==" + start);
                Log.e("111", "2==onTextChanged ,count==" + count);
                Log.e("111", "2==onTextChanged ,before==" + before);

            }

            @Override
            public void afterTextChanged(Editable s) {

            //这个方法被调用,那么说明s字符串的某个地方已经被改变。
                Log.e("111", "3==afterTextChanged ,s==" + s.toString());

            }
        });

示例一:

//在输入“你”,你
1===================================================== 
1==beforeTextChanged , s==
1==beforeTextChanged ,start==0
1==beforeTextChanged ,count==0
1==beforeTextChanged ,after==1

2==onTextChanged ,s==你
2==onTextChanged ,start==0
2==onTextChanged ,count==1
2==onTextChanged ,before==0

3==afterTextChanged ,s==你



//继续输入“们”,你们
1=====================================================
1==beforeTextChanged , s==你
1==beforeTextChanged ,start==1
1==beforeTextChanged ,count==0
1==beforeTextChanged ,after==1

2==onTextChanged ,s==你们
2==onTextChanged ,start==1
2==onTextChanged ,count==1
2==onTextChanged ,before==0

3==afterTextChanged ,s==你们



//继续输入“好”,你们好
1=====================================================
1==beforeTextChanged , s==你们
1==beforeTextChanged ,start==2
1==beforeTextChanged ,count==0
1==beforeTextChanged ,after==1

2==onTextChanged ,s==你们好
2==onTextChanged ,start==2
2==onTextChanged ,count==1
2==onTextChanged ,before==0

3==afterTextChanged ,s==你们好

示例二:

//输入“你”
 1=====================================================
 1==beforeTextChanged , s==
 1==beforeTextChanged ,start==0
 1==beforeTextChanged ,count==0
 1==beforeTextChanged ,after==1

 2==onTextChanged ,s==你
 2==onTextChanged ,start==0
 2==onTextChanged ,count==1
 2==onTextChanged ,before==0

 3==afterTextChanged ,s==你


//继续输入“们”
1=====================================================
1==beforeTextChanged , s==你
1==beforeTextChanged ,start==1
1==beforeTextChanged ,count==0
1==beforeTextChanged ,after==1

2==onTextChanged ,s==你们
2==onTextChanged ,start==1
2==onTextChanged ,count==1
2==onTextChanged ,before==0

3==afterTextChanged ,s==你们

//把光标移到你和们之间,再次输入“好”
1=====================================================
1==beforeTextChanged , s==你们
1==beforeTextChanged ,start==1
1==beforeTextChanged ,count==0
1==beforeTextChanged ,after==1

2==onTextChanged ,s==你好们
2==onTextChanged ,start==1
2==onTextChanged ,count==1
2==onTextChanged ,before==0

3==afterTextChanged ,s==你好们
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值