TabHost是android应用开发中非常常用的组件,他能起到类似web开发中菜单导航的效果。
基本概念:
TabHost:TabHost就像一个容器,里面可以存放多个Tab。
tabHost.addTab(tabSpec);//此方法用于将tab添加到tabHost。
TabSpec:就是Tab,这个类没有对外提供构造函数(不能new),我们需要通过tabHost.newTabSpec("TS_HOME")来实例化TabSpec,参数用于识别和区分多个Tab,就像每个人都会有一个名字。通过TabSpec我们可以设置Tab的图标、Tab上显示的文字,还有Tab的内容。
tabSpec.setIndicator("主页", getResources().getDrawable(R.drawable.tab_home));//此方法用于设置Tab的文字和图标。
tabSpec.setContent(new Intent(this,HomeActivity.class));//此方法用于设置Tab的内容,此方法有多种参数形式,本文主要讲Tab的内容为Activity。
程序实例:
效果图
代码:
import android.app.TabActivity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
public class TabHost1Activity extends TabActivity {
TabHost tb;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
tb = this.getTabHost();
TabSpec tsHome = tb.newTabSpec("TS_HOME")
.setIndicator("主页", getResources().getDrawable(R.drawable.tab_home))
.setContent(new Intent(this,HomeActivity.class));
tb.addTab(tsHome);
TabSpec tsGroupOn = tb.newTabSpec("TS_GROUPON")
.setIndicator("团购信息", getResources().getDrawable(R.drawable.tab_groupon))
.setContent(new Intent(this,GroupOnActivity.class));
tb.addTab(tsGroupOn);
TabSpec tsUserInfo = tb.newTabSpec("TS_USERINFO")
.setIndicator("个人中心", getResources().getDrawable(R.drawable.tab_userinfo))
.setContent(new Intent(this,UserInfoActivity.class));
tb.addTab(tsUserInfo);
TabSpec tsMore = tb.newTabSpec("TS_MORE")
.setIndicator("更多", getResources().getDrawable(R.drawable.tab_more))
.setContent(new Intent(this,MoreActivity.class));
tb.addTab(tsMore);
}
}
简简单单几句代码TabHost存放多个Activity就实现了。