Android TabWidget/TabHost有两种使用方法:

第一种:使用系统自带写好的TabHost(及继承自TabActivity类)具体代码如下:
<?xml version="1.0" encoding="utf-8"?><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayout android:id="@+id/tab1"android:layout_width="fill_parent" android:layout_height="fill_parent"androidrientation="vertical"><TextView android:id="@+id/TextView1"android:text="This is a tab1" android:layout_width="fill_parent"android:layout_height="wrap_content"></TextView></LinearLayout><LinearLayout android:id="@+id/tab2"android:layout_width="fill_parent" android:layout_height="fill_parent"androidrientation="vertical"><TextView android:id="@+id/TextView2"android:text="This is a tab2" android:layout_width="fill_parent"android:layout_height="wrap_content"></TextView></LinearLayout><LinearLayout android:id="@+id/tab3"android:layout_width="fill_parent" android:layout_height="fill_parent"androidrientation="vertical"><TextView android:id="@+id/TextView3"android:text="This is a tab3" android:layout_width="fill_parent"android:layout_height="wrap_content"></TextView></LinearLayout></FrameLayout>

package com.Aina.Android;import android.app.AlertDialog;import android.app.Dialog;import android.app.TabActivity;import android.content.DialogInterface;import android.os.Bundle;import android.view.LayoutInflater;import android.widget.TabHost;public class Test_TabWidget extends TabActivity {/** Called when the activity is first created. */private TabHost tabHost;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// setContentView(R.layout.main);tabHost = this.getTabHost();LayoutInflater li = LayoutInflater.from(this);li.inflate(R.layout.main, tabHost.getTabContentView(), true);tabHost.addTab(tabHost.newTabSpec("Tab_1").setContent(R.id.tab1).setIndicator("TAB1",this.getResources().getDrawable(R.drawable.img1)));tabHost.addTab(tabHost.newTabSpec("Tab_2").setContent(R.id.tab2).setIndicator("TAB2",this.getResources().getDrawable(R.drawable.img2)));tabHost.addTab(tabHost.newTabSpec("Tab_3").setContent(R.id.tab3).setIndicator("TAB3",this.getResources().getDrawable(R.drawable.img3)));tabHost.setCurrentTab(1);//tabHost.setBackgroundColor(Color.GRAY);tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {public void onTabChanged(String tabId) {Dialog dialog = new AlertDialog.Builder(Test_TabWidget.this).setTitle("提示").setMessage("选中了" + tabId + "选项卡").setIcon(R.drawable.icon).setPositiveButton("确定", new DialogInterface.OnClickListener(){public void onClick(DialogInterface dialog,int which) {// TODO Auto-generated method stub}}).create();dialog.show();}});}}



第二种:就是定义我们自己的tabHost:不用继承TabActivity,具体代码如下:
<?xml version="1.0" encoding="utf-8"?><TabHost xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/TabHost01" android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayout android:layout_width="fill_parent"android:orientation="vertical" android:layout_height="fill_parent"><TabWidget android:id="@android:id/tabs"android:layout_width="fill_parent"android:layout_height="wrap_content" /><FrameLayout android:id="@android:id/tabcontent"android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayout android:id="@+id/LinearLayout1"android:layout_width="fill_parent"android:layout_height="wrap_content"><TextView android:text="one"android:id="@+id/TextView01" android:layout_width="wrap_content"android:layout_height="wrap_content"></TextView></LinearLayout><LinearLayout android:id="@+id/LinearLayout2"android:layout_width="wrap_content"android:layout_height="wrap_content"><TextView android:text="two"android:id="@+id/TextView02" android:layout_width="fill_parent"android:layout_height="wrap_content"></TextView></LinearLayout><LinearLayout android:id="@+id/LinearLayout3"android:layout_width="wrap_content"android:layout_height="wrap_content"><TextView android:text="three"android:id="@+id/TextView03" android:layout_width="fill_parent"android:layout_height="wrap_content"></TextView></LinearLayout></FrameLayout></LinearLayout></TabHost>

package com.Aina.Android;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.LayoutInflater;import android.widget.TabHost;public class Test_TabHost extends Activity {/** Called when the activity is first created. */private TabHost tabHost;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);try{tabHost = (TabHost) this.findViewById(R.id.TabHost01);tabHost.setup();tabHost.addTab(tabHost.newTabSpec("tab_1").setContent(R.id.LinearLayout1).setIndicator("TAB1",this.getResources().getDrawable(R.drawable.img1)));tabHost.addTab(tabHost.newTabSpec("tab_2").setContent(R.id.LinearLayout2).setIndicator("TAB2",this.getResources().getDrawable(R.drawable.img2)));tabHost.addTab(tabHost.newTabSpec("tab_3").setContent(R.id.LinearLayout3).setIndicator("TAB3",this.getResources().getDrawable(R.drawable.img3)));tabHost.setCurrentTab(1);}catch(Exception ex){ex.printStackTrace();Log.d("EXCEPTION", ex.getMessage());}}}


注意:第二种方法时布局文件中的TabWidget的id必须定义为:android:id="@android:id/tabs",FrameLayout的id必须定义为:android:id="@android:id/tabcontent" 其它控件没有限制,否则报错。


【Android进阶】嵌套TabHost (TabHost中放TabHost,类似二级目录、二级树)
http://blog.csdn.net/feng88724/archive/2011/02/23/6203358.aspx

更多相关文章

  1. Android(安卓)进阶解密读书笔记1
  2. Android自定义Toast的时长、位置、及显示的View
  3. 【Android(安卓)进阶】Android(安卓)Home 键监听
  4. 关于PreferenceActivity的使用和一些问题的解决(自己定义Title和
  5. Android(安卓)中自定义权限
  6. Android(安卓)Animation学习笔记
  7. android TextView自定义字体样式
  8. android webview自定义标签!(实现打电话的功能);
  9. Android(安卓)make脚本简记

随机推荐

  1. 配置 limits.conf 限制 Linux 用户登录数
  2. 8.24 linux c socket 简单实现
  3. 谁能讲一下搞网站后端开发的刚进公司每天
  4. Linux的时间函数(转载)
  5. 在红帽企业Linux 4中设置 device-mapper
  6. Linux与Windows平台的一些兼容性注意事项
  7. Linux下安装Mathematica 9的说明
  8. linux下rar包的解压方法
  9. linux性能监测工具perf
  10. Linux源码中的mktime算法解析