导航标签使用

一、创建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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值