Android上下TabHost设置及Did you forget to call 'public void setup(LocalActivityManager activityGroup)解决方法

来源:互联网 发布:淘宝客采集软件13.9 编辑:程序博客网 时间:2024/06/08 03:13

      如果用系统默认的tabhost时,即(TabHost)findViewById(android.R.id.tabhost); 红色部分为android系统自带的样式,直接用getTabhost()初始化,整个类继承tabActivity。

如果使用自己定义的id时,必须使用findViewById(R.id.tabhostname);tabhostname.setup()或者setup(LocalActivityManager   activityGroup)

如果后面使用 setContent(android.content.Intent)即setContent参数是一个实例化的Intent时,必须使用setup(LocalActivityManager activityGroup),而对应的整个类必须继承ActivityGroup,使用setup()时,整个类继承的是Activity。

在使用TabHost时有时出现Did you forget to call 'public void setup(LocalActivityManager activityGroup),主要是没有继承ActivityGroup和获得ActivityManager。

解决方法Activity继承ActivityGroup,并获得ActivityManager。代码如下:public class TabActivity extends ActivityGroup{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.tab_main);mTabHost = (TabHost) findViewById(R.id.tabhost);mTabHost.setup();mTabHost.setup(this.getLocalActivityManager());}

对于TabHost、布局文件中必须包含TabHost、TabWidget 、FrameLayout .缺一不可

如果加载该TabHost画面的类继承TabActivity,并且想通过getTabHost()方法来获取TabHost,getTabWidget()方法获取TabWidget,

那么TabHost、TabWidget 、FrameLayout 三者的ID必须是android.R.id.tabhost、android.R.id.tabs、android.R.id.tabcontent




0 0
原创粉丝点击