このトピックには多くのスレッドがありますが、何も助けになることはありません。私は私のコードをポストcan't、しかし、私は私の状況を説明しようと :onsaveinstancestateの後にIllegalStateExceptionがこのアクションを実行できません
- 私はIllegalStateExceptionを取得:onSaveInstanceState
後、私はDrawerLayout /ナビゲーションとの活動のメインを(持ってこのアクションを実行することはできません引き出し)。この活動では、常に1つの断片です。最初は、WelcomePageという断片があります。
クリックすると、フラグメントが新しいフラグメント(私はそれをFootballClubsと呼ぶ)に置き換えられます。このフラグメントにはViewPagerが含まれているため、複数のページで構成されています。各ページはフラグメントFootballClubです。 (したがって、FootballClubsの断片は、複数のFootballClub断片で構成されています)。各FootballClubには、ユーザーがクリックできるボタンがあります。クリックすると新しいフラグメントが開きます(私はNewFragmentと呼んでいます)。
最初はすべてが正常で例外はスローされません。新しいフラグメントが例外なく正しく表示されるたびに、できるだけ頻繁にボタンをクリックし、onBackPressed ViewPagerでFootballClubsに戻ります。しかし、私がスマートフォンを回すと、画面の向きが少なくとも1回は変わったので、ボタンをクリックして新しいフラグメント(何を表示したいか)を開くと次のようになります:
IllegalStateException:これを実行できませんonSaveInstanceState
後のアクション、私はこのコードでWelcomePage/FootballClubs/NewFragment断片を置き換える:
protected void replaceSubfragment(int containerID, Fragment newFragment) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(containerID, newFragment);
transaction.commit();
}
例外は(transaction.commitにスローされます)。私は)( transaction.commitを交換する場合
;: containerIdは、常にいくつかの追加情報と同じ(アクティビティ・レイアウトのでframeLayout)
です と transaction.commitAllowingStateLoss(); 私はこの例外を取得します:IllegalStateException:アクティビティが破棄されました(私はクリックしても全く同じですが)
すべてのフラグメントが私のFragmentActivityクラスMainで置き換えられます。ボタンをクリックすると、SectionPageのSubclassが注目され、FragmentActivityがリスナーをFragmentActivityで置き換えることができます(BaseActivityはListenerをFootballClubsフラグメントに置き換えます)。
私はFragmentActivityのフラグメントを置き換えるだけなので、getChildFragmentManager()は使用しません。 (私がこれまで覚えていた限り、これもうまくいきませんでした)
オリエンテーションが変更されたときにアクティビティが破壊され、再作成されることがわかりましたが、この情報では何もできません。アプリ全体私は私が私のFragmentActivityではあまりにも
IllegalStateExceptionが取得クリックボタンの代わりにNewFragmentのダイアログを表示したい場合は、私は変数activeModuleを持って
このボタンを除いて完璧に動作します。ここで私はactiveModule.isAdded()をチェックできます。例外がスローされると、isAdded()はfalseを返します。だから私は、エラーがスローされるかどうかを確認することができます
私は私の問題を説明できることを願っています。画面の向きにはすべてのものが残っています。理由はわかりません。 詳細情報が必要な場合は、私に尋ねてください。
ありがとうございます!