首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

领航标签使用

2012-09-25 
导航标签使用一、创建Activity:Android的导航标签由一个叫做TabActivity创建,TabActivity继承自ActivityGro

导航标签使用
一、创建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));    }}


热点排行