How to pass data from current fragment to previous fragment

Viewed 5173

I am having 2 Fragments A and B. I am starting Fragment B from Fragment A. I need to pass data from Fragment B to Fragment A before Fragment B is closed. Its like startActivityForResult() idea.

Here in Fragment A I am calling Fragment B:

 FragmentB calendarDialog = new FragmentB();
                calendarDialog.setTargetFragment(CurrentPanchangDialog.this, 1);
                FragmentTransaction transaction = getActivity().getSupportFragmentManager().beginTransaction();
                transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
                transaction.setCustomAnimations(R.anim.enter_from_left, R.anim.exit_to_right, R.anim.enter_from_right, R.anim.exit_to_left);
                transaction.add(android.R.id.content, calendarDialog).addToBackStack(null).commit();

Now in Fragment B I am calling something like this while closing:

getTargetFragment().onActivityResult(
                    getTargetRequestCode(),
                    Activity.RESULT_OK,
                    new Intent().putExtra("data", "datafrom C")
            );
            getActivity().getSupportFragmentManager().popBackStackImmediate();

Now in the Base Activity I am overriding onActivityForResult():

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        Fragment pFragment = getSupportFragmentManager().findFragmentById(R.id.content);
        if (pFragment instanceof CurrentPanchangDialog) {
            if (pFragment != null) {
                pFragment.onActivityResult(requestCode, resultCode, data);
            }
        }
        super.onActivityResult(requestCode, resultCode, data);
    }

I am not getting the data back to Fragment A from Fragment B.

2 Answers
Related