gpt4 book ai didi

android - super.onActivityResult(requestCode, resultCode, data);

转载 作者:搜寻专家 更新时间:2023-11-01 08:31:23 25 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,其中包含一个具有多个 fragment 的主机 Activity 。我在我的主机 Activity 和我的 fragment 中使用了 onActivityResult() 方法。

在宿主 Activity 中

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

fragment 中

public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode)
{
}
}

当我从 fragment 启动 activityForResult 时, fragment 的 onActivityResult 没有被调用。我是这样做的

startActivityForResult(Intent.createChooser(intent, "Select File"),REQUEST_CODE);

当我将这一行添加到我的主机 Activity 的结果方法时,我解决了我的问题super.onActivityResult(requestCode, resultCode, data);

public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode)
{
}
}

现在我的 fragment 的 onActivityResult() 正在调用。我想知道当我将 super.onActivityResult() 添加到 Activities onResult 方法中时,这行 super.onActivityResult() 实际上做了什么?当 Activity 有多个 fragment 时,onActivityResult() 的调用顺序。

最佳答案

I want to know what this line super.onActivityResult()

在您的例子中,它调用 FragmentActivityonActivityResult。 Android 检查是否存在应调用其 onActivityResult 的 Fragment

in which order the onActivityResult() gets call, when activity has multiple fragments

首先是托管 Activity,最后是调用 startActivityForResultFragment

要更深入地了解该主题,请查看 FragmentActiviy#onActivityResult

关于android - super.onActivityResult(requestCode, resultCode, data);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40417718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com