Android TabWidget/TabHost的使用

來源:互聯網
上載者:User
2010-06-07Android TabWidget/TabHost的使用

文章分類:Java編程 Android TabWidget/TabHost有兩種使用方法:

第一種:使用系統內建寫好的TabHost(及繼承自TabActivity類)具體代碼如下:

Java代碼  

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent">  
  5.     <LinearLayout android:id="@+id/tab1"  
  6.         android:layout_width="fill_parent" android:layout_height="fill_parent"  
  7.         androidrientation="vertical">  
  8.         <TextView android:id="@+id/TextView1"  
  9.             android:text="This is a tab1" android:layout_width="fill_parent"  
  10.             android:layout_height="wrap_content">  
  11.         </TextView>  
  12.     </LinearLayout>  
  13.     <LinearLayout android:id="@+id/tab2"  
  14.         android:layout_width="fill_parent" android:layout_height="fill_parent"  
  15.         androidrientation="vertical">  
  16.         <TextView android:id="@+id/TextView2"  
  17.             android:text="This is a tab2" android:layout_width="fill_parent"  
  18.             android:layout_height="wrap_content">  
  19.         </TextView>  
  20.     </LinearLayout>  
  21.     <LinearLayout android:id="@+id/tab3"  
  22.         android:layout_width="fill_parent" android:layout_height="fill_parent"  
  23.         androidrientation="vertical">  
  24.         <TextView android:id="@+id/TextView3"  
  25.             android:text="This is a tab3" android:layout_width="fill_parent"  
  26.             android:layout_height="wrap_content">  
  27.         </TextView>  
  28.     </LinearLayout>  
  29. </FrameLayout>  
Java代碼  

  1. package com.Aina.Android;  
  2.   
  3. import android.app.AlertDialog;  
  4. import android.app.Dialog;  
  5. import android.app.TabActivity;  
  6. import android.content.DialogInterface;  
  7. import android.os.Bundle;  
  8. import android.view.LayoutInflater;  
  9. import android.widget.TabHost;  
  10.   
  11. public class Test_TabWidget extends TabActivity {  
  12.     /** Called when the activity is first created. */  
  13.     private TabHost tabHost;  
  14.   
  15.     @Override  
  16.     public void onCreate(Bundle savedInstanceState) {  
  17.         super.onCreate(savedInstanceState);  
  18.         // setContentView(R.layout.main);  
  19.         tabHost = this.getTabHost();  
  20.         LayoutInflater li = LayoutInflater.from(this);  
  21.         li.inflate(R.layout.main, tabHost.getTabContentView(), true);  
  22.         tabHost.addTab(tabHost.newTabSpec("Tab_1").setContent(R.id.tab1)  
  23.                 .setIndicator("TAB1",  
  24.                         this.getResources().getDrawable(R.drawable.img1)));  
  25.         tabHost.addTab(tabHost.newTabSpec("Tab_2").setContent(R.id.tab2)  
  26.                 .setIndicator("TAB2",  
  27.                         this.getResources().getDrawable(R.drawable.img2)));  
  28.         tabHost.addTab(tabHost.newTabSpec("Tab_3").setContent(R.id.tab3)  
  29.                 .setIndicator("TAB3",  
  30.                         this.getResources().getDrawable(R.drawable.img3)));  
  31.         tabHost.setCurrentTab(1);  
  32. //      tabHost.setBackgroundColor(Color.GRAY);  
  33.         tabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {  
  34.   
  35.             public void onTabChanged(String tabId) {  
  36.                 Dialog dialog = new AlertDialog.Builder(Test_TabWidget.this)  
  37.                         .setTitle("提示").setMessage(  
  38.                                 "選中了" + tabId + "選項卡").setIcon(R.drawable.icon).setPositiveButton("確定", new DialogInterface.OnClickListener(){  
  39.   
  40.                                     public void onClick(DialogInterface dialog,  
  41.                                             int which) {  
  42.                                         // TODO Auto-generated method stub  
  43.                                           
  44.                                     }  
  45.                                       
  46.                                 }).create();  
  47.                 dialog.show();  
  48.   
  49.             }  
  50.   
  51.         });  
  52.     }  
  53. }  

第二種:就是定義我們自己的tabHost:不用繼承TabActivity,具體代碼如下:

Java代碼  

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <TabHost xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:id="@+id/TabHost01" android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent">  
  5.     <LinearLayout android:layout_width="fill_parent"  
  6.         android:orientation="vertical" android:layout_height="fill_parent">  
  7.         <TabWidget android:id="@android:id/tabs"  
  8.             android:layout_width="fill_parent"  
  9.             android:layout_height="wrap_content" />  
  10.         <FrameLayout android:id="@android:id/tabcontent"  
  11.             android:layout_width="fill_parent"  
  12.             android:layout_height="fill_parent">  
  13.             <LinearLayout android:id="@+id/LinearLayout1"  
  14.                 android:layout_width="fill_parent"  
  15.                 android:layout_height="wrap_content">  
  16.                 <TextView android:text="one"  
  17.                     android:id="@+id/TextView01" android:layout_width="wrap_content"  
  18.                     android:layout_height="wrap_content">  
  19.                 </TextView>  
  20.             </LinearLayout>  
  21.             <LinearLayout android:id="@+id/LinearLayout2"  
  22.                 android:layout_width="wrap_content"  
  23.                 android:layout_height="wrap_content">  
  24.                 <TextView android:text="two"  
  25.                     android:id="@+id/TextView02" android:layout_width="fill_parent"  
  26.                     android:layout_height="wrap_content">  
  27.                 </TextView>  
  28.             </LinearLayout>  
  29.             <LinearLayout android:id="@+id/LinearLayout3"  
  30.                 android:layout_width="wrap_content"  
  31.                 android:layout_height="wrap_content">  
  32.                 <TextView android:text="three"  
  33.                     android:id="@+id/TextView03" android:layout_width="fill_parent"  
  34.                     android:layout_height="wrap_content">  
  35.                 </TextView>  
  36.             </LinearLayout>  
  37.         </FrameLayout>  
  38.     </LinearLayout>  
  39. </TabHost>  
Java代碼  

  1. package com.Aina.Android;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.util.Log;  
  6. import android.view.LayoutInflater;  
  7. import android.widget.TabHost;  
  8.   
  9. public class Test_TabHost extends Activity {  
  10.     /** Called when the activity is first created. */  
  11.     private TabHost tabHost;  
  12.   
  13.     @Override  
  14.     public void onCreate(Bundle savedInstanceState) {  
  15.         super.onCreate(savedInstanceState);  
  16.         setContentView(R.layout.main);  
  17.         try{  
  18.             tabHost = (TabHost) this.findViewById(R.id.TabHost01);  
  19.             tabHost.setup();  
  20.               
  21.             tabHost.addTab(tabHost.newTabSpec("tab_1")  
  22.                     .setContent(R.id.LinearLayout1)  
  23.                     .setIndicator("TAB1",this.getResources().getDrawable(R.drawable.img1)));  
  24.             tabHost.addTab(tabHost.newTabSpec("tab_2")  
  25.                     .setContent(R.id.LinearLayout2).setIndicator("TAB2",  
  26.                             this.getResources().getDrawable(R.drawable.img2)));  
  27.             tabHost.addTab(tabHost.newTabSpec("tab_3")  
  28.                     .setContent(R.id.LinearLayout3).setIndicator("TAB3",  
  29.                             this.getResources().getDrawable(R.drawable.img3)));  
  30.             tabHost.setCurrentTab(1);  
  31.         }catch(Exception ex){  
  32.             ex.printStackTrace();  
  33.             Log.d("EXCEPTION", ex.getMessage());  
  34.         }  
  35.   
  36.     }  
  37. }  

注意:第二種方法時布局檔案中的TabWidget的id必須定義
為:android:id="@android:id/tabs",FrameLayout的id必須定義
為:android:id="@android:id/tabcontent" 其它控制項沒有限制,否則報錯。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.