一、创建Activity:

Android的导航标签由一个叫做TabActivity创建,TabActivity继承自ActivityGroup。

二、获取管理标签的对象:

在这个Activity的onCreate()方法里使用getTabHost()方法,即可获得控制导航标签的TabHost(管理标签的对象)。

TabHost继承自android.widget.FrameLayout
它有2个内嵌接口:
TabHost.OnTabChangeListener(实现该接口可以相应TabChange事件)、TabHost.TabContentFactory(实现该接口约定的方法createTabContent(String tag)可以控制标签中的内容显示)

和一个内嵌类TabHost.TabSpec(该类包括了标签的indicator、content、tag)

三、填充标签管理对象
给TabHost添加标签通过
tabHost.addTab(tabHost.newTabSpec("tab2").setIndicator("tab2").setContent(this));方法实现,参数是一个TabSpec。而TabSpec通过newTabSpec()方法创建,其中第一个设置即前面说的tag,第二个设置即前面说的indicatior,第三个设置即是标签的现实内容content,这里setContent(this)的写法是因为实现了TabHost.TabContentFactory接口。

四、创建Content,填充一个具体的标签
前面的TabSpec的创建时写到setContent(this),这即是把自身作为一个content填充给标签。Content的创建不局限于这种模式,一般有一下3种:
1、通过layout布局的view填充 :setContent(R.id.view1)
2、通过实现TabHost.TabContentFactory接口的createTabContent(String tag)方法创建 :setContent(this)
3、通过传入一个Intent启动一个Activity创建 : setContent(new Intent(this, List1.class))

具体使用哪一种方式,需要据应用情况而定,没有优劣之分

贴一段代码(通过layout的viewID创建content):
public class Tabs1 extends TabActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        TabHost tabHost = getTabHost();                LayoutInflater.from(this).inflate(R.layout.tabs1, tabHost.getTabContentView(), true);        tabHost.addTab(tabHost.newTabSpec("tab1")                .setIndicator("tab1")                .setContent(R.id.view1));        tabHost.addTab(tabHost.newTabSpec("tab3")                .setIndicator("tab2")                .setContent(R.id.view2));        tabHost.addTab(tabHost.newTabSpec("tab3")                .setIndicator("tab3")                .setContent(R.id.view3));    }}


更多相关文章

  1. android webview 显示不出来
  2. Android(安卓)ListView的item button点击无响应的解决方法
  3. 使用 git 命令行工具创建一个 Android(安卓)工程
  4. Android开发——SQLite数据库(二)android studio创建数据库,进行插
  5. Android官方培训中文课程
  6. Android(安卓)实现文字按照路径曲线显示
  7. Android(安卓)清除所有Notification的一些探究
  8. android 使用InstanceState保存和恢复数据
  9. android 系统定制之编译方法总结

随机推荐

  1. RSS全站静态输出和RSS订阅的步骤(dedecms)
  2. ASP.NET读取RSS的实例解析
  3. 关于XML字符的详细介绍
  4. 关于server.xml的9篇文章推荐
  5. 关于xdoc的10篇文章推荐
  6. 关于JTree的文章推荐
  7. 关于SQLite多线程的用法详解
  8. 关于J2ME 3D图形技术的实例详解
  9. c#对xml的CURD操作的代码示例
  10. 详解xml与Java之间的转换