我創建了一個默認的Android頁面,其中有3個選項卡和片段管理器,我已經添加了2個更多的片段到目前爲止,一切都工作正常,直到我嘗試發送接口到主要活動,並通過捆綁和交易從那裏發送數據到第三個片段:片段接口和事務替換
這樣的:
public void setF4Riddle(int x){
Frag4 F4 =
(Frag4)getSupportFragmentManager().findFragmentById(R.id.frag4);
if (F4 != null) {
F4.getF4Riddle(x);
} else {
Frag4 fragment = new Frag4();
Bundle args = new Bundle();
args.putInt("Value", x);
TextView Dialog =(TextView)findViewById(R.id.Dialog);
Dialog.setText("");
fragment.setArguments(args);
getSupportFragmentManager().beginTransaction()
.replace(R.id.frag4_container, fragment)
.addToBackStack(null).commit();
fragment.getF4Riddle(x);
}
}
,它正常工作與片段4(其從片段5比4),但是當我嘗試片段3崩潰的同一件事(崩潰發生在事務替換中,它不替代frag3佈局)事實上,我嘗試過片段2和在所有情況下,遊戲崩潰(1,2,3),但當我添加更多的片段(6和7),它再次起作用,所以它似乎只有前3個不工作有人知道原因嗎?謝謝
堆棧跟蹤:
10-09 00:01:46.985 20690-20690/com.redot.puzzle3 E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.redot.puzzle3, PID: 20690
java.lang.IllegalArgumentException: No view found for id 0x7f0d0098 (com.redot.puzzle3:id/frag3) for fragment Frag3{128ae004 #5 id=0x7f0d0098}
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1326)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1574)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1641)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:794)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2415)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2200)
at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2153)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2063)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:725)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6873)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
發表您的堆棧跟蹤 – Sony
遺憾的是菜鳥,但我通過運行在logcat中調試應用程序獲取堆棧跟蹤? – amirsoltani
@索尼伊夫做了它 – amirsoltani