183 votes

startActivityForResult() à partir d'un Fragment et d'une Activité enfant finissante, n'appelle pas onActivityResult() dans le Fragment

FirstActivity.Java a un FragmentA.Java qui appelle startActivityForResult() . SecondActivity.Java appelez finish() mais onActivityResult ne sont jamais appelés, ce qui est écrit dans FragmentA.Java .

FragmentA.Java code :

  @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 code :

  @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();
  }

J'ai essayé de déboguer le code, mais onAcitvityResult() ne sont jamais appelés.

1 votes

Essayez de la placer (méthode onActivityResult) dans la classe FirstActivity.

2 votes

-5voto

URAndroid Points 938

Appelez votre onActivityresult() dans ParentActivity .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X