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就实现了。