首页 > 解决方案 > 如何在 ActivityResultLauncher 中返回结果

问题描述

我正在使用 ZXing API。

我有以下代码:

button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v){
                IntentIntegrator integrator = new IntentIntegrator(activity);
                integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
                integrator.setCameraId(0);
                integrator.setOrientationLocked(true);
                integrator.setPrompt("Para usar o flash utilizar os botões do volume");
                integrator.initiateScan();

但是,我不知道如何使用 ActivityResultLauncher mGetContent = registerForActivityResult(new ActivityResultContracts.GetContent() 发布initialScan。

请你帮助我好吗?亲切的问候,

标签: javaandroidandroid-studio

解决方案


我加:

ActivityResultLauncher<Intent> activityResultLaucher;

activityResultLaucher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
            @Override
            public void onActivityResult(ActivityResult result) {
                if(result.getResultCode() == RESULT_OK && result.getData() != null){
                    Intent data = result.getData();
                }
            }
        });

和:

button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v){
                IntentIntegrator integrator = new IntentIntegrator(activity);
                integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
                integrator.setCameraId(0);
                integrator.setOrientationLocked(true);
                integrator.setPrompt("Para usar o flash utilizar os botões do volume");
                integrator.initiateScan();
                ActivityResultLauncher.launch(integrator);
                }

             });

但是 ActivityResultLauncher.launch(integrator) 不起作用。


推荐阅读