gpt4 book ai didi

android - 从 Fragment 开始ActivityForResult() 并完成子 Activity,不会在 Fragment 中调用 onActivityResult()

转载 作者:IT老高 更新时间:2023-10-28 12:55:54 27 4
gpt4 key购买 nike

FirstActivity.Java 有一个 FragmentA.Java 调用 startActivityForResult()SecondActivity.Java 调用 finish()onActivityResult 永远不会被调用用 FragmentA.Java 编写。

FragmentA.Java 代码:

  @Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// some code
Intent i = new Intent(getActivity(), SecondActivity.class);
i.putExtra("helloString", helloString);
getActivity().startActivityForResult(i, 1);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
getActivity();
if(requestCode == 1 && resultCode == Activity.RESULT_OK) {
//some code
}
}

SecondActivity.Java 代码:

  @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//some code
Intent returnIntent = new Intent();
returnIntent.putExtra("result", result);

setResult(Activity.RESULT_OK,returnIntent);
finish();
}

我已尝试调试代码,但 onAcitvityResult() 从未被调用。

最佳答案

您必须在 FirstActivity.Java 中编写 onActivityResult(),如下所示

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

所以这将调用你 fragment 的 onActivityResult()

编辑:解决方法是将getActivity().startActivityForResult(i, 1);替换为startActivityForResult(i, 1);

关于android - 从 Fragment 开始ActivityForResult() 并完成子 Activity,不会在 Fragment 中调用 onActivityResult(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17085729/

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