在扫描时删除条形码字符

时间:2018-04-08 14:31:32

标签: java android barcode-scanner

我在主要活动中安装了一个带条形码扫描器的应用程序。扫描条形码后,我在数据库中搜索此号码。

我的问题是,当我扫描条形码时,并非所有字符都被读取。例如,如果我尝试扫描 mysql> CREATE USER 'finley'@'localhost' IDENTIFIED BY 'password'; mysql> GRANT ALL PRIVILEGES ON *.* TO 'finley'@'localhost' WITH GRANT OPTION; ,则在扫描此条形码后,会随机删除一个或两个字符。

我尝试创建一个新的应用程序来读取条形码并在列表中查看它。它工作正常。我在两个应用程序中使用相同的代码。

代码:

807251306246

XML文件:

public class MainActivity extends AppCompatActivity {

EditText et;
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    et=(EditText) findViewById(R.id.et);
    tv=(TextView) findViewById(R.id.tv);

    et.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int i, KeyEvent keyEvent) {
            if (i == KeyEvent.KEYCODE_ENTER && keyEvent.getAction() == keyEvent.ACTION_DOWN) {
                barcodeInserted();
                return true;
            } else if (i== KeyEvent.KEYCODE_ENTER && keyEvent.getAction() == keyEvent.ACTION_UP)
                return true;
            return false;
        }
    });
}
public void barcodeInserted() {
   tv.append(et.getText().toString()+"\n");
}

1 个答案:

答案 0 :(得分:0)

此代码接受编辑文本中的输入并等待输入结束

etInput.requestFocus();
        etInput.setOnEditorActionListener((v, actionId, event) -> {
            if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)) {
                String fString = etInput.getText().toString().replace("\n", "");
                processScan(fString);
            }
            etInput.setText("");
            etInput.requestFocus();
            return false;
        });

在哪里进行过程扫描,您应该进行查找工作。