【问题标题】:Android Barcode Scanner - auto display SQL dataAndroid Barcode Scanner - 自动显示 SQL 数据
【发布时间】:2017-12-12 02:24:25
【问题描述】:

我想创建 android 条码扫描器并显示来自 SQL 数据库的查询结果。可以使用查看按钮检索结果:

        btnview.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            if((edtproname.getText().toString().length()==28)&&(edtproname.getText() !=null))

            try {

                PreparedStatement statement = connect.prepareStatement("EXEC viewProduct '"+edtproname.getText().toString()+"'");
                String location = edtproname.getText().subSequence(20,28).toString();
                edtlocation.setText(location);

                rs = statement.executeQuery();
                while (rs.next()) {
                    edtproname.setText(rs.getString("ProName"));
                    edtprodesc.setText(rs.getString("ProDesc"));
                }
            } catch (SQLException e) {
                Toast.makeText(AddProducts.this, e.getMessage(),
                        Toast.LENGTH_LONG).show();
            }

            edtqty.requestFocus();
            InputMethodManager manager= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            manager.showSoftInput(edtqty, InputMethodManager.SHOW_FORCED);
        }

这是条码读取事件:

@Override
public void onBarcodeEvent(final BarcodeReadEvent event){
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            String barcodeData = event.getBarcodeData();
            //String timestamp = event.getTimestamp();
            edtproname.setText(""+barcodeData);
}

如何在扫描仪结果加载后自动显示?没有查看按钮?如何直接使用硬件触发显示结果?

感谢您的帮助... 谢谢。

图片:sample app

【问题讨论】:

    标签: java android sql barcode honeywell


    【解决方案1】:

    任何事件调用都类似于触发器。所以只需使用 onBarcodeEvent() 中的 run() 函数来触发搜索。得到barcodeData字符串后输入查询码即可。

    public void onBarcodeEvent(final BarcodeReadEvent event){
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                String barcodeData = event.getBarcodeData();
                edtproname.setText(""+barcodeData);
    
                if(barcodeData.length()==28){
    
                    try {
    
                        PreparedStatement statement = connect.prepareStatement("EXEC viewProduct '"+barcodeData+"'");
                        String location = edtproname.getText().subSequence(20,28).toString();
                        edtlocation.setText(location);
    
                        rs = statement.executeQuery();
                        while (rs.next()) {
                            edtproname.setText(rs.getString("ProName"));
                            edtprodesc.setText(rs.getString("ProDesc"));
                        }
    
                    } catch (SQLException e) {
                        Toast.makeText(AddProducts.this, e.getMessage(),
                        Toast.LENGTH_LONG).show();
                    }
    
                    edtqty.requestFocus();
                    InputMethodManager manager= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                    manager.showSoftInput(edtqty, InputMethodManager.SHOW_FORCED);
    
                }
            }
        });
    }
    

    并移除查看按钮。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 2018-11-19
      • 1970-01-01
      相关资源
      最近更新 更多