0

I am adding Nested fragment to activity and calling onActivityResult into nested fragment and in parent activity. I am able to get requestcode back from parent activity to nested fragment but after onActivityResult, getActivity() returns null but before calling onActivityResult, getActivity() was calling parent activity correctly. I don't understand where the issue? Below is mycode:

onActivityResult in Parent Activity

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    CACEditUserProfileFragment cacEditUserProfileFragment = new CACEditUserProfileFragment();
    cacEditUserProfileFragment.onActivityResult(requestCode, resultCode, data);

}

Above code is for onActivityResult in Parent activity CACEditUserProfileFragment is where i am getting result back.

Here is my log cat

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=2, result=-1, data=Intent { dat=content://media/external/images/media/3984 (has extras) }} to activity {com.scispl.cloudacar/com.scispl.cloudacar.front_end_layer.controller.user_profile.CACProfileActivity}: java.lang.NullPointerException
            at android.app.ActivityThread.deliverResults(ActivityThread.java:3810)
            at android.app.ActivityThread.handleSendResult(ActivityThread.java:3853)
            at android.app.ActivityThread.access$1400(ActivityThread.java:174)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1369)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:146)
            at android.app.ActivityThread.main(ActivityThread.java:5731)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.NullPointerException
            at com.scispl.cloudacar.front_end_layer.controller.user_profile.CACEditUserProfileFragment.onActivityResult(CACEditUserProfileFragment.java:842)
            at com.scispl.cloudacar.front_end_layer.controller.user_profile.CACProfileActivity.onActivityResult(CACProfileActivity.java:369)
            at android.app.Activity.dispatchActivityResult(Activity.java:5790)
            at android.app.ActivityThread.deliverResults(ActivityThread.java:3806)
            at android.app.ActivityThread.handleSendResult(ActivityThread.java:3853)
            at android.app.ActivityThread.access$1400(ActivityThread.java:174)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1369)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:146)
            at android.app.ActivityThread.main(ActivityThread.java:5731)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
            at dalvik.system.NativeStart.main(Native Method)
Reena
  • 152
  • 8

1 Answers1

0

You are resetting your fragment by creating a new instance and this instance is not loaded anywhere, that's why you are getting null for getActivity().

Rather than using

CACEditUserProfileFragment cacEditUserProfileFragment = new CACEditUserProfileFragment();
cacEditUserProfileFragment.onActivityResult(requestCode, resultCode, data);

use

setResult(resultCode, data);
Rohit5k2
  • 17,948
  • 8
  • 45
  • 57
  • Hi Rohit,Thanks for help, can you please tell me how do i call setResult and where exactly? – Reena Aug 18 '15 at 10:10