一.创建Tabhost
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="0.0dip"
android:layout_weight="1.0" />
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0.0"
android:visibility="gone" />
<RadioGroup
android:id="@+id/main_radiogroup"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@drawable/tab_widget_background"
android:gravity="center_vertical"
android:orientation="horizontal"
android:padding="2dip" >
<RadioButton
android:id="@+id/RadioButton0"
style="@style/tab_item_background"
android:drawableTop="@drawable/tab_icon1"
android:text="主页"
android:textColor="#ffffff"/>
<RadioButton
android:id="@+id/RadioButton1"
style="@style/tab_item_background"
android:drawableTop="@drawable/tab_icon2"
android:text="关于"
android:textColor="#ffffff"/>
<RadioButton
android:id="@+id/RadioButton2"
style="@style/tab_item_background"
android:drawableTop="@drawable/tab_icon3"
android:text="设置"
android:textColor="#ffffff"/>
<RadioButton
android:id="@+id/RadioButton3"
style="@style/tab_item_background"
android:drawableTop="@drawable/tab_icon4"
android:text="搜索"
android:textColor="#ffffff"/>
<RadioButton
android:id="@+id/RadioButton4"
style="@style/tab_item_background"
android:drawableTop="@drawable/tab_icon5"
android:text="更多"
android:textColor="#ffffff"/>
</RadioGroup>
</LinearLayout>
</TabHost>
1.如果是继承TabActivity 可以用tabHost = getTabHost()获得,但是TabHost的id必须为android:id="@android:id/tabhost".否则可以通过findviewbyid获得,若果没有继承TabActivity,在得到tabhost之后要加上tabHost.setup();因为TabActivity默认加了这句
2.得到TabHost之后要设置他的具体标签,TabSpec tabSpec = tabHost.newTabSpec("tag1");用来new一个tab,同时标记这个tab的tag,后面可以通过tabHost.setCurrentTabByTag("tag1"),来找到这个tab,并点击了这个tab.
3.有tab,我们还需要设置点击tab后的处理,用tab.setContent();可以是这个Activity下的一个组件,如setContent(R.id.tab1),也可以是一个intent,比如:setContent(new Intent(this, SubTab.class))
a.set组件,直接set我没有成功过,如果有成功的可以留言告诉我下.我是通过
- LayoutInflater.from(this).inflate(R.layout.tabs,
- host.getTabContentView(), true);
加载布局之后,再添加这个成功了.关于LayoutInflater的用法具体看这个,讲的很详细
b.set一个intent,这个intent没什么好说的,Intent intent = new Intent(this,other.class);指定你要加进来的activity.
4.setIndicator()用来标记这个tab的名字,可以是setIndicator("Clock"),也可以包含其他的属性,如图片:setIndicator( "商场",getResources().getDrawable(android.R.drawable.arrow_down_float))