尝试替换片段时出现NullPointerException

时间:2015-02-20 07:39:23

标签: android android-fragments xamarin xamarin.android mvvmcross

我在尝试替换Activity中的Fragment时遇到了javga.lang.NullPointerException。我使用FrameLayout作为我的主机,根据按钮点击动态放置片段。

异常Stacktrace:

[AndroidRuntime] Shutting down VM
[AndroidRuntime] FATAL EXCEPTION: main
[AndroidRuntime] Process: com.data3s.eluzzionnative, PID: 1595
[AndroidRuntime] java.lang.NullPointerException
[AndroidRuntime]    at android.app.BackStackRecord.run(BackStackRecord.java:653)
[AndroidRuntime]    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447)
[AndroidRuntime]    at android.app.FragmentManagerImpl$1.run(FragmentManager.java:443)
[AndroidRuntime]    at android.os.Handler.handleCallback(Handler.java:733)
[AndroidRuntime]    at android.os.Handler.dispatchMessage(Handler.java:95)
[AndroidRuntime]    at android.os.Looper.loop(Looper.java:136)
[AndroidRuntime]    at android.app.ActivityThread.main(ActivityThread.java:5017)
[AndroidRuntime]    at java.lang.reflect.Method.invokeNative(Native Method)
[AndroidRuntime]    at java.lang.reflect.Method.invoke(Method.java:515)
[AndroidRuntime]    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
[AndroidRuntime]    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
[AndroidRuntime]    at dalvik.system.NativeStart.main(Native Method)
[Process] Sending signal. PID: 1595 SIG: 9

这是我用来替换片段的代码。

_myWorkView = new MyWorkFragment();
_myWorkView.ViewModel = myWorkVm;
var trans = FragmentManager.BeginTransaction();
trans.Replace(Resource.Id.myWorkView, _myWorkView);
trans.Commit();

需要注意的是,如果我尝试将片段放入Activity的onCreate中,它的效果非常好。仅当我尝试从OnOptionsItemSelected放置片段(即点击IMenuItem)时才会发生异常

有什么我做错了吗?如果需要更多信息,请告诉我。

感谢。

编辑:

问题出在前面的代码中,与上面的代码片段根本没有关系。遗憾。

1 个答案:

答案 0 :(得分:0)

问题出在前面的代码中,与上面的代码片段根本没有关系。遗憾。