在另一个片段中将片段添加到TabHost

时间:2015-02-13 00:22:11

标签: java android android-fragments

我想在android上的tabhost中添加一个片段作为其中一个标签。我想我需要使用片段管理器加载片段,但我不确定如何处理它。这是我设置tabHost的代码:

Intent intent = new Intent(getActivity(), FilesFragment.class);
tabSpec = tabHost.newTabSpec("Page 1").setContent(intent).setIndicator("How to Print");
tabHost.addTab(tabSpec);
tabSpec = tabHost.newTabSpec("Page 2").setContent(homePageTab2.getId()).setIndicator("Files");
tabHost.addTab(tabSpec);
tabSpec = tabHost.newTabSpec("Page 3").setContent(homePageTab3.getId()).setIndicator("Drives");
tabHost.addTab(tabSpec);

这是运行时错误:

 Caused by: java.lang.IllegalStateException: Did you forget to call 'public void setup(LocalActivityManager activityGroup)'?
            at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:747)
            at android.widget.TabHost.setCurrentTab(TabHost.java:413)
            at android.widget.TabHost.addTab(TabHost.java:240)
            at io.uprint.uprint.Home.onCreateView(Home.java:86)

1 个答案:

答案 0 :(得分:0)

答案就在logcat中......

Caused by: java.lang.IllegalStateException: Did you forget to call 'public void setup(LocalActivityManager activityGroup)'?

来自TabHost的文档...

  

public void setup(LocalActivityManager activityGroup)

     

如果您正在使用setContent(android.content.Intent),则必须调用此方法,因为启动本地活动需要activityGroup。如果您扩展TabActivity,则会为您完成此操作。

     

<强>参数

     

activityGroup 用于启动标签内容的活动。