简体   繁体   English

Android条码扫描器-自动显示SQL数据

[英]Android Barcode Scanner - auto display SQL data

I want to create android barcode scanner and display query result from SQL Database. 我想创建android条码扫描器并显示来自SQL数据库的查询结果。 The result can be retrieved with view button : 可以使用查看按钮检索结果:

        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);
        }

This is the barcode read event : 这是条形码读取事件:

@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);
}

how to accomplish with auto display after scanner result loaded? 加载扫描仪结果后如何自动显示? without view button? 没有查看按钮? How to use hardware trigger show result directly? 如何直接使用硬件触发显示结果?

I appreciate any help... Thank you. 感谢您的帮助...谢谢。

Image : sample app 图片: 示例应用

Any event call acts like a trigger. 任何事件调用都像触发器。 So just use the run() function in onBarcodeEvent() to trigger the search. 因此,只需在onBarcodeEvent()中使用run()函数来触发搜索。 Just put the query code after you get the barcodeData string. 在获取条形码数据字符串之后,只需放置查询代码即可。

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);

            }
        }
    });
}

And remove the view button. 并删除查看按钮。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM