StackOverFlowError:为无限循环运行的addTextChangedListener

时间:2013-03-04 07:06:51

标签: android stack-overflow android-edittext

我正在尝试使用条形码扫描仪从条形码中读取值。我需要在处理完值后重置UI。

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。

1 个答案:

答案 0 :(得分:1)

afterTextChanged中应用此检查:

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