我正在尝试使用条形码扫描仪从条形码中读取值。我需要在处理完值后重置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。
答案 0 :(得分:1)
在afterTextChanged
中应用此检查:
if(!scanned_barCode.getText().toString().equals(""))
{
AddRecord(scanned_barCode.getText().toString());
SetDataOnUI();
}