片段中的startActivityForResult()并完成子活动,但未在片段中调用

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()未被调用。


忽然笑
浏览 488回答 3
3回答

吃鸡游戏

凯文(Kevin)的答案行得通,但是使用该解决方案很难处理数据。最好的解决方案不是从startActivityForResult()活动级别开始。在你的情况下不要打电话 getActivity().startActivityForResult(i, 1);相反,只需使用startActivityForResult()它就可以正常工作!:)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android