贝利信息

如何在 Android 扫码后跳转到新 Activity

日期:2026-01-07 00:00 / 作者:碧海醫心

本文介绍如何在使用 android studio 和 jetpack activity result api 完成二维码扫描后,自动启动新 activity,并传递扫描结果。

在基于 ActivityResultLauncher 的扫码流程中(例如使用 ZXing 或 ML Kit 等库),扫描完成后的回调逻辑位于 ActivityResultCallback 内。默认示例中弹出 AlertDialog 仅用于展示结果,而实际开发中我们通常需要跳转至下一个页面并携带数据——例如将扫描到的 URL、订单号或 JSON 字符串传递给目标 Activity。

以下是推荐的实现方式(Java):

ActivityResultLauncher barLauncher = registerForActivityResult(
    new ScanContract(),
    result -> {
        if (result.getContents() != null) {
            // 创建 Intent,启动目标 Activity
            Intent intent = new Intent(QRScanActivity.this, NextTargetActivity.class);

            // 可选:将扫描内容作为额外参数传入
            intent.putExtra("scanned_data", result.getContents());

            // 启动 

Activity(无返回值) startActivity(intent); // 可选:关闭当前扫码页(避免用户返回重复扫描) finish(); } } );

⚠️ 注意事项:

总结:替换 AlertDialog 为 startActivity() 是最直接、符合现代 Android 架构规范的做法;配合 intent.putExtra() 即可安全、清晰地完成数据流转,无需额外依赖或复杂封装。