android TabHost(选项卡)的使用方法

Android中的选项卡是用TabHost实现的,下面我们用一个例子说明他的使用方法

首先,定义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:orientation="vertical"
       android:layout_width="fill_parent" android:layout_height="fill_parent">

       <TabWidget android:id="@android:id/tabs"
           android:layout_alignParentBottom="true"
           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>

</TabHost>


其中,TabWidget即是选项卡上面的标签,FrameLayout是选项卡的内容。
在Java类文件中定义如下:



public class MainActivity extends TabActivity {

   private TabHost my_tabhost;  
   private TabWidget my_tabwidget;
   private int i,k;
   private TextView tv;

   private String[] tabMenu = { "系统", "硬件", "操作"};
   private Intent intent0, intent1, intent2;
   private Intent[] intents = { intent0, intent1, intent2};
   private TabHost.TabSpec tabSpec0, tabSpec1, tabSpec2, tabSpec3;
   private TabHost.TabSpec[] tabSpecs = { tabSpec0, tabSpec1, tabSpec2, tabSpec3};

   public static Context mContext;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
               // 不要窗体标题
              requestWindowFeature(Window.FEATURE_NO_TITLE);
              setContentView(R.layout.activity_main);
       setContentView(R.layout.activity_main);

       my_tabhost = getTabHost();

       intent0 = new Intent(this, system.class);
       intent1 = new Intent(this, hardware.class);
       intent2 = new Intent(this, operation.class);

       tabSpec0 = my_tabhost.newTabSpec("system").setIndicator(tabMenu[0],null).
               setContent(intent0);
       tabSpec1 = my_tabhost.newTabSpec("hardware").setIndicator(tabMenu[1],null).
               setContent(intent1);
       tabSpec2 = my_tabhost.newTabSpec("operation").setIndicator(tabMenu[2],null).
               setContent(intent2);

       my_tabhost.addTab(tabSpec1);
       my_tabhost.addTab(tabSpec0);
       my_tabhost.addTab(tabSpec2);
<br>                 // 设置默认选中的选项卡为第2个      
                    my_tabhost.setCurrentTab(1);

   }

}


每一个选项卡对应一个Intent,每一个Intent又对应一个类,选中这个选项卡时,就显示对应的类。
运行结果如下:


20131119111559.jpg?2013101911175

你可能感兴趣的:(android)