2

我正在尝试使用以下代码创建一个选项卡式活动

public class FragmentTabs extends FragmentActivity {

private FragmentTabHost mTabHost;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
    mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);

    mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),
            SimpleFrag.class, null);

    mTabHost.addTab(mTabHost.newTabSpec("detailed").setIndicator("Detailed"),
            DetailedFrag.class, null);

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}    

代码始终显示 java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState在 FragmentManager 中。我用谷歌搜索了几次并浏览了所有链接。但我无法得到任何解决方案。请帮助我,因为我坚持这一点。

-------------------------------------------------- - - 编辑 - - - - - - - - - - - - - - - - -

上面的代码有时工作正常,有时会抛出异常。

4

2 回答 2

1

请尝试以下代码。

super.onCreate(savedInstanceState);
View root = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE).inflate(R.layout.activity_main, null, false);
setContentView(root);
mTabHost = (FragmentTabHost) root.findViewById(android.R.id.tabhost);
mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),SimpleFrag.class, null);
mTabHost.addTab(mTabHost.newTabSpec("detailed").setIndicator("Detailed"), DetailedFrag.class, null);
于 2013-11-13T09:40:52.513 回答
0

尝试使用这个:

if (savedInstanceState == null) {
        // write code here
    }

如果不传达代码

于 2013-11-13T09:14:41.337 回答