addTextChangedListener(new TextWatcher()){}

来源:互联网 发布:南平政务数据开放 编辑:程序博客网 时间:2024/06/10 14:11

参考:【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==01==beforeTextChanged ,count==01==beforeTextChanged ,after==12==onTextChanged ,s==你2==onTextChanged ,start==02==onTextChanged ,count==12==onTextChanged ,before==03==afterTextChanged ,s==你//继续输入“们”,你们1=====================================================1==beforeTextChanged , s==你1==beforeTextChanged ,start==11==beforeTextChanged ,count==01==beforeTextChanged ,after==12==onTextChanged ,s==你们2==onTextChanged ,start==12==onTextChanged ,count==12==onTextChanged ,before==03==afterTextChanged ,s==你们//继续输入“好”,你们好1=====================================================1==beforeTextChanged , s==你们1==beforeTextChanged ,start==21==beforeTextChanged ,count==01==beforeTextChanged ,after==12==onTextChanged ,s==你们好2==onTextChanged ,start==22==onTextChanged ,count==12==onTextChanged ,before==03==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==11==beforeTextChanged ,count==01==beforeTextChanged ,after==12==onTextChanged ,s==你们2==onTextChanged ,start==12==onTextChanged ,count==12==onTextChanged ,before==03==afterTextChanged ,s==你们//把光标移到你和们之间,再次输入“好”1=====================================================1==beforeTextChanged , s==你们1==beforeTextChanged ,start==11==beforeTextChanged ,count==01==beforeTextChanged ,after==12==onTextChanged ,s==你好们2==onTextChanged ,start==12==onTextChanged ,count==12==onTextChanged ,before==03==afterTextChanged ,s==你好们
原创粉丝点击