android-studio - onActivityResult 未在 Fragment 中调用

标签 android-studio zbar

在我的片段中 onActivityResult 没有在 startActivityForResult 之后调用。因为我尝试了以下事情: 1)在startActivityResult之前添加getParentFragment、getActivity

2) 添加到 list android:configChanges="orientation|screenSize"

3) onActivityResult is not being called in Fragment

4)检查ZbarScanner Activity中的finish()方法

Intent dataIntent = new Intent();
                    dataIntent.putExtra(SCAN_RESULT, symData);
                    dataIntent.putExtra(SCAN_RESULT_TYPE, sym.getType());
                    setResult(Activity.RESULT_OK, dataIntent);
                    finish();

5) 错误- [ResultInfo{who=null, request=196609, result=-1, data=Intent { (has extras) }}]} checked intent has value not null which we are passing

if (isCameraAvailable()) {
                    Intent intent = new Intent(this.getActivity(), ZBarScannerActivity.class);
                    intent.putExtra(ZBarConstants.SCAN_MODES, new int[]{Symbol.QRCODE});

                  startActivityForResult(intent, 1);


                    Toast.makeText(getActivity(), "inside case", Toast.LENGTH_SHORT).show();


                } else {
                    Toast.makeText(getActivity(), "Rear Facing Camera Unavailable", Toast.LENGTH_SHORT).show();
                }

----onActivityResult------

  @Override
        public void onActivityResult(int requestCode, int resultCode, Intent data) {

            super.onActivityResult(requestCode, resultCode, data);
            Bundle bundle = data.getExtras();


            switch (requestCode) {
                case ZBAR_SCANNER_REQUEST:
                case ZBAR_QR_SCANNER_REQUEST:
                    if (resultCode == getActivity().RESULT_OK) {


                        Toast.makeText(getActivity(), "Scan Result = " + data.getStringExtra(ZBarConstants.SCAN_RESULT), Toast.LENGTH_SHORT).show();

                    } else if (resultCode == getActivity().RESULT_CANCELED && data != null) {
                        String error = data.getStringExtra(ZBarConstants.ERROR_INFO);
                        if (!TextUtils.isEmpty(error)) {
                            Toast.makeText(getActivity(), error, Toast.LENGTH_SHORT).show();
                        }
                    }}

最佳答案

我在 MainActivity 上调用了 onActivityResult 并且它没有调用。所以删除了 switch case。它现在可以工作了

switch (requestCode) {
            case ZBAR_SCANNER_REQUEST:
            case ZBAR_QR_SCANNER_REQUEST:

关于android-studio - onActivityResult 未在 Fragment 中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34946119/

相关文章:

android-studio - 如何从Kotlin的Android Studio中的单选按钮组中的选定单选按钮获取文本?

android - "failed to create jvm error code 6"

java - Android Studio上的Gradle同步失败

python - 如何解决 Python 的 'Pyzbar' 库的导入错误?

android - Zbar 与 Android : Scanner camera viewport remain inactive and black after showing the url in browser

android - Zbar 集成到 Android 应用程序中

java - 从图像文件中扫描二维码

android - 如何确定 Android Studio 是否实际使用了英特尔 HAXM 加速器?

java - 如何在 kiosk 模式/锁定任务模式下将安装程序包列入白名单?

python - 无法使用 zbar 扫描二维码