StackOverFlowError:为无限循环运行的addTextChangedListener

问题描述:

我正在尝试使用条形码扫描器从条形码读取值。在处理完值后,我需要重置用户界面。StackOverFlowError:为无限循环运行的addTextChangedListener

if(flag){ 
      System.out.println("coming inside if"); 
      scanned_barCode.addTextChangedListener(new TextWatcher() { 

       @Override 
       public void onTextChanged(CharSequence s, int start, int before, int count) { 
        // TODO Auto-generated method stub 
        AddRecord(scanned_barCode.getText().toString()); 
        SetDataOnUI(); 
       } 

       @Override 
       public void beforeTextChanged(CharSequence s, int start, int count, 
         int after) { 

       } 

       @Override 
       public void afterTextChanged(Editable s) { 
        // TODO Auto-generated method stub 

       } 



      }); 
     }else{ 
      scanned_barCode.setText(""); 
     } 

它给了StackOverError,我想因为它会进入无限循环。我如何克服这个问题。每次调用AddRecord(String str)我都需要将editText设置为null。

+0

使其aftertextChange(的一部分) 不onTextChange() – 2013-03-04 07:11:27

+0

仍然没有改变 – onkar 2013-03-04 07:16:31

afterTextChanged应用此检查:

if(!scanned_barCode.getText().toString().equals("")) 
{ 
    AddRecord(scanned_barCode.getText().toString()); 
    SetDataOnUI(); 
} 
+0

还是一样:(我试图加入'的setText()'上最后一行'SetDataOnUI()' – onkar 2013-03-04 07:24:06

+0

能分享AddRecord和SetDataUI函数的代码吗? – 2013-03-04 07:26:00

+0

请检查最新编辑:) – onkar 2013-03-04 07:28:43