2

I'm using Android's built in Tabhost widget and the following error crashes the app:

Exception java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
    android.support.v4.app.FragmentManagerImpl.checkStateLoss (FragmentManager.java:1842)
    android.support.v4.app.FragmentManagerImpl.enqueueAction (FragmentManager.java:1860)
    android.support.v4.app.BackStackRecord.commitInternal (BackStackRecord.java:650)
    android.support.v4.app.BackStackRecord.commit (BackStackRecord.java:609)
    android.support.v4.app.FragmentTabHost.onAttachedToWindow (FragmentTabHost.java:288)
    android.view.View.dispatchAttachedToWindow (View.java:12612)

I'm not using fragment transaction or anything that should use .commit() so I still wonder what's causing this.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    ButterKnife.bind(this);
    mFirebaseAnalytics = DomVio.getInstance().getFirebaseAnalytics();

    mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);

    ImageView urgencyTabView = (ImageView) getLayoutInflater().inflate(R.layout.tab_host_item, null);
    urgencyTabView.setImageResource(R.drawable.tab_urgency);
    mTabHost.addTab(mTabHost.newTabSpec("Urgency").setIndicator(urgencyTabView), UrgencyFragment.class, null);

    ImageView articlesTabView = (ImageView) getLayoutInflater().inflate(R.layout.tab_host_item, null);
    articlesTabView.setImageResource(R.drawable.tab_articles);
    mTabHost.addTab(mTabHost.newTabSpec("Articles").setIndicator(articlesTabView), LegalArticlesFragment.class, null);

    ImageView awarenessTabView = (ImageView) getLayoutInflater().inflate(R.layout.tab_host_item, null);
    awarenessTabView.setImageResource(R.drawable.tab_awareness);
    mTabHost.addTab(mTabHost.newTabSpec("Awareness").setIndicator(awarenessTabView), AwarenessArticlesFragment.class, null);

    ImageView expertsTabView = (ImageView) getLayoutInflater().inflate(R.layout.tab_host_item, null);
    expertsTabView.setImageResource(R.drawable.tab_experts);
    mTabHost.addTab(mTabHost.newTabSpec("Experts").setIndicator(expertsTabView), ExpertsTabsFragment.class, null);

    ImageView questionareTabView = (ImageView) getLayoutInflater().inflate(R.layout.tab_host_item, null);
    questionareTabView.setImageResource(R.drawable.tab_questionare);
    mTabHost.addTab(mTabHost.newTabSpec("Questionare").setIndicator(questionareTabView), QuestionareFragment.class, null);

    mTabHost.getTabWidget().setDividerDrawable(null);
    mTabHost.getTabWidget().getChildAt(0).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            UrgencyFragment fragment = (UrgencyFragment) getSupportFragmentManager().findFragmentByTag("Urgency");
            fragment.switchToMain();
            mTabHost.setCurrentTab(0);
        }
    });

    mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
        @Override
        public void onTabChanged(String tabId) {
            if (tabId != null) {
                Bundle bundle = new Bundle();
                bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, tabId + " " + "tab");
                mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
            }
        }
    });

}
OneCricketeer
  • 179,855
  • 19
  • 132
  • 245

0 Answers0