tabhost中setup()和setup(LocalActivityManager activityGroup)实例创建区别
如果用系统默认的tabhost时,即(TabHost)findViewById(android.R.id.tabhost); 红色部分为android系统自带的样式
直接用getTabhost()初始化,整个类继承tabActivity。
如果使用自己定义的id时,必须使用findViewById(R.id.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。
E/AndroidRuntime(20559): Caused by: java.lang.IllegalStateException: Did you forget to call 'public void setup(LocalActivityManager activityGroup)'?
E/AndroidRuntime(20559): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:654)
E/AndroidRuntime(20559): at android.widget.TabHost.setCurrentTab(TabHost.java:326)
E/AndroidRuntime(20559): at android.widget.TabHost.addTab(TabHost.java:216)
E/AndroidRuntime(20559): at org.ourunix.android.tabdesign.TabDesignActivity.onCreate(TabDesignActivity.java:47)
E/AndroidRuntime(20559): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
E/AndroidRuntime(20559): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1780)
你的Activity继承ActivityGroup,并获得ActivityManager。代码如下:
- publicclassTabDesignActivityextendsActivityGroup{
- @Override
- protectedvoidonCreate(BundlesavedInstanceState){
- //TODOAuto-generatedmethodstub
- super.onCreate(savedInstanceState);
- setContentView(R.layout.tab_main);
- mTabHost=(TabHost)findViewById(R.id.tabhost);
- mTabHost.setup();
- mTabHost.setup(this.getLocalActivityManager());
- }
更多相关文章
- Android:实现滑屏
- android ActivityGroup使用简单步骤
- Android(安卓)Fragment动态创建时replace()和add()方法的区别
- PhoneGap 初探
- Android(安卓)Studio自带模版:抽屉(DrawerLayout)布局
- 纯Java代码写登录注册页面
- Android(安卓)DES AES MD5加密
- Android中常见的设计模式
- 一个android 异步多线程类介绍