对于TabHost中setContent()使用Intent的一点总结
来源:互联网 发布:知乎欧美乐坛 编辑:程序博客网 时间:2024/05/23 11:46
创建TabHost有两种方式
第一种:继承TabActivity,使用getTabHost初始化。
第二种:继承Activity,使用this.findViewById(R.id.tabhost)初始化。
但是,当我们的setContent()中的参数是Intent时,也就是他的tab包含的是Activity而不是其他的布局或者组件时,之前正常的代码会发生错误,这里我说一下一点总结吧
第一,继承Activity
public class TabDemoActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.test);TabHost tabHost = (TabHost) findViewById(R.id.tabhost); // 注意下面这段LocalActivityManager mLocalActivityManager = new LocalActivityManager(this, false); mLocalActivityManager.dispatchCreate(savedInstanceState); tabHost.setup(mLocalActivityManager); tabHost.addTab(tabHost.newTabSpec("one").setIndicator("tab1").setContent(new Intent(this, FirstActivity.class)));tabHost.addTab(tabHost.newTabSpec("two").setIndicator("tab2").setContent(new Intent(this, SecondActivity.class)));tabHost.addTab(tabHost.newTabSpec("three").setIndicator("tab3").setContent(new Intent(this, ThirdlyActivity.class)));}}
第二,继承ActivityGroup
public class TabDemoActivity extends ActivityGroup{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.test);TabHost tabHost = (TabHost) findViewById(R.id.tabhost);// 注意下面这段 tabHost.setup(this.getLocalActivityManager()); tabHost.addTab(tabHost.newTabSpec("one").setIndicator("tab1").setContent(new Intent(this, FirstActivity.class)));tabHost.addTab(tabHost.newTabSpec("two").setIndicator("tab2").setContent(new Intent(this, SecondActivity.class)));tabHost.addTab(tabHost.newTabSpec("three").setIndicator("tab3").setContent(new Intent(this, ThirdlyActivity.class)));}}
为什么需要调用setup方法,官方给出的解释,setup方法主要是初始化了TabConnect和TabWidget
If you are using setContent(android.content.Intent), this must be called since the activityGroup is needed to launch the local activity. This is done for you if you extend TabActivity.
上面这两种代码的对应XML,注意除了tabhost的id可以自定义外,其他的必须使用系统的id
<?xml version="1.0" encoding="utf-8"?><TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" android:padding="5dp" /> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0.0" > </TabWidget> </LinearLayout></TabHost>
第三,继承TabActivity
public class TabDemoActivity extends TabActivity{@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.test); // 注意idTabHost tabHost = (TabHost) findViewById(android.R.id.tabhost); tabHost.addTab(tabHost.newTabSpec("one").setIndicator("tab1").setContent(new Intent(this, FirstActivity.class)));tabHost.addTab(tabHost.newTabSpec("two").setIndicator("tab2").setContent(new Intent(this, SecondActivity.class)));tabHost.addTab(tabHost.newTabSpec("three").setIndicator("tab3").setContent(new Intent(this, ThirdlyActivity.class)));}}
第三种使用的XML如下
<?xml version="1.0" encoding="utf-8"?><TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" android:padding="5dp" /> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0.0" > </TabWidget> </LinearLayout></TabHost>
- 对于TabHost中setContent()使用Intent的一点总结
- tabhost中使用intent
- android中TabHost+intent的使用
- android TabHost setcontent出错
- C/C++语言中sizeof对于数组的一点总结
- 对于Unity中旋转问题的一点总结
- 对于gradle在android studio中使用的一点认识
- Android开发中Intent的使用总结
- Android中Intent的使用总结
- Android Activity 中 Intent 的使用总结
- TabHost的一点注意事项
- 对于信息资源管理的一点总结。。。
- Android中TabHost的使用
- Android中TabHost的使用
- android中tabhost的使用
- TabHost中在Tab组内打开新的Intent
- 对于php中magic_quotes_gpc的一点认识
- 对于block使用的一点思考
- 压力测试案例
- Collection接口和Map接口的主要实现类
- Android 方向传感器与磁力计和加速度传感器之间的关系
- 较难的动态规划问题——付款问题,面值任意,可找零
- Service 中启动 Activity
- 对于TabHost中setContent()使用Intent的一点总结
- 2012.4.12(周四)实验课要求
- ios应用UIViewController内存管理
- Eclipse 常用快捷键(开发必备)
- Windows内存原理与内存管理
- [非技术] 超赞的财经类网站大全
- JavaScript 调用 ASP.NET WebService 的简单方法
- 一些公司面试题
- char *p 与 char p[]的区别