【问题标题】:Android : Text watcher onTextChanged and afterTextChanged events firing multiple times.Android:Textwatcher onTextChanged 和 TextChanged 事件多次触发后。
【发布时间】:2016-08-12 06:26:33
【问题描述】:

我在编辑文本上使用 text watcher,并且该编辑文本位于列表视图内。我必须在编辑文本长度 == 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;
                }
            }
        });

这是我的日志输出,计数消息重复

>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

请一些人帮助我限制文本观察事件的多次执行。提前致谢。

【问题讨论】:

  • 从哪里记录“CALLING COUNT ACT”?
  • 那是因为它在一个listView或者recyclerView中。当您滚动时,将为列表中的每个项目调用该方法。
  • @Shaishav。这是一个列表视图。我没有滚动。只需在编辑文本和方法 obKeywordSuggestionInterface.getKeywordUsingChar(s.toString(),position); 中输入字符。
  • @Akshay,请查看这个有同样问题的链接 [stackoverflow.com/questions/33375484/…
  • 但是你想从代码中发生什么?

标签: android android-edittext android-textwatcher


【解决方案1】:

请确保您没有在 obKeywordSuggestionInterface.getKeywordUsingChar 内的 edittext 上设置文本

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多