0

バーコードスキャナーを使用してバーコードから値を読み取ろうとしています。値が処理された後、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を与えています、それは無限ループに入っているので、私は推測します。この問題をどのように克服しますか。が呼び出されるたびに、 editTextAddRecord(String str)をnullに設定する必要があります。

4

1 に答える 1

1

このafterTextChangedチェックを適用するには:

if(!scanned_barCode.getText().toString().equals(""))
{
    AddRecord(scanned_barCode.getText().toString());
    SetDataOnUI();
}
于 2013-03-04T07:16:35.573 に答える