Android:文本观察器onTextChanged和afterTextChanged事件多次触发。

时间:2016-08-12 06:26:33

标签: android android-edittext android-textwatcher

我在编辑文本上使用文本观察器,编辑文本在列表视图中。我必须在编辑文本长度时调用一个方法== 3.但是文本观察者事件正在执行多次。这是我的代码:

 holder.etTypeKeyword.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                //System.out.println("KEYWORD TYPED : "+s+ " count : "+count);  
                }    
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }    
            @Override
            public void afterTextChanged(Editable s) {
                if(s.length()==3){
        //          isServiceCall=true;
                    System.out.println("CALLING COUNT : " + position + " Length "+holder.etTypeKeyword.getText());
                    obKeywordSuggestionInterface.getKeywordUsingChar(s.toString(),position);

                }else{
        //          isServiceCall=false;
                }
            }
        });

这是我的日志输出,其中count消息重复

>I/System.out: CALLING COUNT : 2 Length 
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length 
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length 
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length 
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length 
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length 
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length 
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length 
I/System.out: CALLING COUNT ACT : 2 Length Fun
I/System.out: CALLING COUNT : 2 Length 
I/System.out: CALLING COUNT ACT : 2 Length Fun

请一些正文帮我解决这个问题,以限制文本观察者事件的多次执行。提前致谢。

1 个答案:

答案 0 :(得分:0)

请确保您没有在obKeywordSuggestionInterface.getKeywordUsingChar

内的edittext上设置文字