2

当单击按钮时,我实际上试图将我的片段指向 Zxing qr 扫描仪。

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
            intent.putExtra("SCAN_MODE", "PRODUCT_MODE");// for Qr code, its
                                                            // "QR_CODE_MODE"
                                                            // instead of
                                                            // "PRODUCT_MODE"
            intent.putExtra("SAVE_HISTORY", false);// this stops saving ur
                                                    // barcode in barcode
                                                    // scanner app's history
            startActivityForResult(intent, 0);

我面临的问题是,在下面的代码中,我无法让我的 resultCode 与 RESULT_OK 和 RESULT_CANCELED 进行比较。我设法在一个活动中做到了这一点,但是当我想在我的片段类中实现时,我无法这样做。

@Override
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);
        Log.d("onActivityResult", "Started");
        if (requestCode == 0)
        {
            if (resultCode == RESULT_OK)
            {
                String contents = data.getStringExtra("SCAN_RESULT"); 

                TextView txt_qrCode = (TextView) rootView.findViewById(R.id.txt_helloWorld);
//              txt_qrCode.setText(contents);
            }
            else if (resultCode == RESULT_CANCELED)
            {
                // Handle cancel
            }
        }
    }
4

1 回答 1

1

我找到了这个问题的答案。

int android.app.Activity.RESULT_CANCELED = 0 [0x0]

因为 RESULT_OK 和 RESULT_CANCELED 实际上依赖于活动,而在我的片段类中没有活动。我简单地说

if (resultCode == getActivity().RESULT_OK)
.
.

代替

if (resultCode == RESULT_OK)
.
.

这将允许我获得使片段膨胀的父活动。

于 2013-08-19T04:09:32.083 回答