【发布时间】:2014-09-19 04:30:00
【问题描述】:
FATAL EXCEPTION: main
Process: com.example.loan, PID: 24169
java.lang.IllegalStateException: Fragment already added: FormFragment{428f10c8 #1 id=0x7f050055 form}
at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1192)
at android.support.v4.app.BackStackRecord.popFromBackStack(BackStackRecord.java:722)
at android.support.v4.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1533)
at android.support.v4.app.FragmentManagerImpl$2.run(FragmentManager.java:489)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1484)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:450)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5068)
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:792)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
at dalvik.system.NativeStart.main(Native Method)
所以,我有一个使用 tabhost 构建的 android 应用程序。一共有三个tab,在tab2中,tab2中有一个进行fragment事务的按钮(就是调用fragment Activity中的函数)
FragmentTransaction t = getSupportFragmentManager().beginTransaction();
t.replace(R.id.realtabcontent, mFrag);
t.addToBackStack(null);
t.commit();
如果我这样运行会有异常:
- 在tab2里面,我按下按钮来改变fragment
- 转到其他选项卡(例如选项卡 1 或选项卡 3)
- 按返回键
- 抛出异常
如何解决这个问题?感谢您的帮助
【问题讨论】:
-
表示后台正在添加一个新的片段,后台的逻辑是什么?非常感谢
-
除了 tab2 之外,mFrag 是否也添加到了其他选项卡中?
标签: android android-fragments tabs android-lifecycle fragment-tab-host