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);
}
}
});
}