在片段内扫描条形码

时间:2015-10-30 11:24:04

标签: android fragment barcode

我想在片段中扫描条形码。如果单击“扫描”按钮,条形码扫描仪会弹出并扫描条形码。但我无法获得扫描文本。我的onActivityResult方法有什么问题?

背景:我的应用程序中有两个不同的扫描按钮。第一个扫描qrcodes并位于我的MainActivity。它工作正常,我的onActivityResult方法也很好。 第二个扫描按钮位于我的AddDataFragment中。使用此按钮,我想基于常规条形码扫描序列号。所以我有2个扫描事件和一个onActivityResult ....

编辑:我将旧的假代码更改为我的(希望)更好的代码。

这是我onActivityResult中的MainActivity代码。如何从我的MainActivityAddDataFragment获取扫描的字符串(scansResult)?

 public void onActivityResult(int requestCode, int resultCode, Intent intent) {
        super.onActivityResult(requestCode, resultCode, intent);
        if (requestCode == 0) {
            if (resultCode == RESULT_OK) {
                String scanContent = intent.getStringExtra("SCAN_RESULT");
                String scanFormat = intent.getStringExtra("SCAN_RESULT_FORMAT");
                Log.d("INHALT", scanContent);
                Log.d("FORMAT", scanFormat);
                if (scanFormat == "QR_CODE"){
                    String [] Split = scanContent.split("\\s");
                    String product = Split[0];
                    String label = Split[1];
                    

                    mydb.insertData(product, label);
                } else {
                    scannedResult = scanContent;
                }



            } else if (resultCode == RESULT_CANCELED) {
                // Handle cancel
            }
        }


        Fragment fragment;
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        fragment = new ListViewFragment();
        ft.replace(R.id.container, fragment);
        ft.commitAllowingStateLoss();
    }

这是我在AddDataFragment

中调用的方法

        inputSerial = (EditText) view.findViewById(R.id.editText_serial);
        ImageButton ib = (ImageButton) view.findViewById(R.id.button_scan_serial);
        ib.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent("com.google.zxing.client.android.SCAN");
                intent.putExtra("SCAN_FORMATS", "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR,EAN_13,EAN_8,UPC_A");
                startActivityForResult(intent, 0);

            }
        });

但似乎onActivityResult的调用不起作用,因为我在扫描常规条形码后没有得到日志。 (没有崩溃或错误消息)

0 个答案:

没有答案