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中ExpandableListView的使用
  2. android 圆形头像—— android开源系列:CircleImageView自定义圆
  3. 自定义Android菜单背景
  4. android调用camera实现自定义照相
  5. 分析android的usb-gadget
  6. Android(安卓)​自定义RadioButton或CheckBox选择样式
  7. Android之Room
  8. Android中PopupWindow自定义坐标实现
  9. Android(安卓)OpenGL学习笔记(二)之----三角形的绘制.

随机推荐

  1. android 锁屏时,不运行锁屏程序
  2. Android 菜单(OptionMenu)大全
  3. 移动开发:Android(安卓)Media (Audio) Fr
  4. 安卓报错:AS Error inflating class andr
  5. 2015最新的 导航条《actionbar》给大家分
  6. Android LayoutEditor使Eclipse自动关闭
  7. android屏幕和view的截图
  8. Android Configuration
  9. android Vibrator开启振动功能
  10. Android 面试准备