Android 对话框 fragment 和 onActivityResult

标签 android onactivityresult dialogfragment

我创建了一个应用程序,向用户呈现一个对话框 fragment ,其中包含两个选项:

如果用户选择"is",应用程序将调用设备上安装的 Zxing barscan 应用程序,并返回结果。

现在,我有了这项工作的概念证明。然而,这个概念证明使用了一个简单的 Activity 。因此,我可以使用 Activity 而不是对话框 fragment 来实现此 Barscan 结果。

概念验证中使用的代码如下:

    public void onActivityResult(int requestCode, int resultCode, Intent intent) {
    //retrieve scan result
    IntentResult scanningResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);

    if (scanningResult != null) {
        String scanContent = scanningResult.getContents();      
        String scanFormat = scanningResult.getFormatName();
        formatTxt.setText("FORMAT: " + scanFormat);
        contentTxt.setText("CONTENT: " + scanContent);
        }
    else{
        Toast toast = Toast.makeText(getApplicationContext(), 
            "No scan data received!", Toast.LENGTH_SHORT);
        toast.show();
    }   
}

此代码不适用于对话框 fragment 。我一直在寻找并发现this问题。

但是它不会集成,因为我无法访问 requestCode、resultCode 或所需的 Intent ,并且对如何执行此操作感到非常困惑。

最佳答案

您的 fragment 应该通过 startActivityForResult 启动 Activity,而不是 getActivity().startActivityForResult

onActivityResult 的 Activity 中调用 super.onActivityResult 并在 onActivityResult 的 fragment 中,您可以放置​​您在此处发布的代码。

更多信息原因:

关于Android 对话框 fragment 和 onActivityResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24699207/

相关文章:

android - 为什么在 Android 中不调用 onActivityResult?

Android - 对话框 fragment 宽度保持与父级匹配

java - Android 中对话框的基类

java - 获取屏幕宽度 Android

android - Google Analytics for Android v4 - 自动屏幕测量不工作?

java - Android 应用请求 Firebase 自定义身份验证

android - 短信发送后返回onActivityResult

Android Activity 在不应该被销毁的时候被销毁了

java - Activity 甚至不调用 onActivityResult

android - 在 RxJava 中链接对话 fragment 结果