无法比较 Zxing qr 扫描仪 onActivityResult 中的 int 变量
Posted
技术标签:
【中文标题】无法比较 Zxing qr 扫描仪 onActivityResult 中的 int 变量【英文标题】:Unable to compare int variable in Zxing qr scanner onActivityResult 【发布时间】:2013-08-20 18:41:25 【问题描述】:当按钮被点击时,我实际上是在尝试将我的片段指向 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
【问题讨论】:
这个这个***.com/questions/1276635/… 我其实打算在市场上做zxing原生应用。 【参考方案1】:我找到了这个问题的答案。
int android.app.Activity.RESULT_CANCELED = 0 [0x0]
因为 RESULT_OK 和 RESULT_CANCELED 实际上依赖于活动,而在我的片段类中没有活动。我简单地说
if (resultCode == getActivity().RESULT_OK)
.
.
而不是
if (resultCode == RESULT_OK)
.
.
这将允许我获得使片段膨胀的父活动。
【讨论】:
你应该只使用Activity.RESULT_OK
——它是一个静态常量。以上是关于无法比较 Zxing qr 扫描仪 onActivityResult 中的 int 变量的主要内容,如果未能解决你的问题,请参考以下文章
Zxing QR扫描仪onActivityResult未在片段中调用[重复]
Android 系列 5 7使用Google ZXing条形码扫描器扫描条形码或QR码
iOS:ipad 中的 Zxing QR 码阅读器无法横向工作