0

我将嵌套片段添加到活动并将onActivityResult调用到嵌套片段和父活动中。我能够从父活动返回requestcode到嵌套片段,但在onActivityResult,getActivity()之后返回null,但在调用onActivityResult之前,getActivity()正确地调用父活动。我不明白这个问题在哪里? 下面是mycode的:NestedFragment onActivityResult返回getActivity()Null

onActivityResult在父活动

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

} 

上面的代码是为onActivityResult在父活动CACEditUserProfileFragment就是我得到的结果回来。

这是我的日志猫

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) 
+0

请张贴stacfk跟踪 – Sheychan

回答

1

您希望通过创建一个新的实例重置片段和这种情况下没有任何位置加载的,这就是为什么要为getActivity()越来越null

而不是使用

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

使用

setResult(resultCode, data); 
+0

嗨罗希特,感谢您的帮助,可以请你告诉我,我怎么叫的setResult和究竟在何处? – Reena

+0

尝试替换代码。 – Rohit5k2

相关问题