Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android TabHost的使用

Android TabHost的使用

編輯:Android開發實例

Android的TabHost是一個很好的分頁的控件

能夠把自己的程序的多個activity組織起來

這裡面聯系到的概念有ActivityGroup

TabActivity

使用TabHost構建程序有兩種方法

一種是在java代碼裡,一種是在xml代碼裡

一種方法是在java裡直接寫

  1. private TabHost mtabHost;  
  2. mtabHost = getTabHost();   
  3.                  mtabHost.addTab(mtabHost.newTabSpec("tab1")   
  4.                          .setIndicator(getString(R.string.tabs_1_tab_1), getResources().getDrawable(R.drawable.undo))   
  5.                          .setContent(this));   
  6.                  mtabHost.addTab(mtabHost.newTabSpec("tab2")   
  7.                          .setIndicator(getString(R.string.tabs_1_tab_2),getResources().getDrawable(R.drawable.undo))   
  8.                          .setContent(this));   
  9.                  mtabHost.addTab(mtabHost.newTabSpec("tab3")   
  10.                          .setIndicator(getString(R.string.tabs_1_tab_3),getResources().getDrawable(R.drawable.undo))   
  11.                          .setContent(this));   
  12.                  mtabHost.addTab(mtabHost.newTabSpec("tab4")   
  13.                          .setIndicator(getString(R.string.tabs_1_tab_4),getResources().getDrawable(R.drawable.undo))   
  14.                          .setContent(new Intent(this, inviteTab.class)));   
  15.                  mtabHost.addTab(mtabHost.newTabSpec("tab5")   
  16.                          .setIndicator(getString(R.string.tabs_1_tab_5),getResources().getDrawable(R.drawable.tab_set))   
  17.                          .setContent(this));   
  18.                  mtabHost.addTab(mtabHost.newTabSpec("tab6")   
  19.                          .setIndicator(getString(R.string.tabs_1_tab_6),getResources().getDrawable(R.drawable.undo))   
  20.                          .setContent(this));   
  21.                  mtabHost.addTab(mtabHost.newTabSpec("tab7")   
  22.                          .setIndicator(getString(R.string.tabs_1_tab_7),getResources().getDrawable(R.drawable.tab_help))   
  23.                          .setContent(this));   
  24.                  mtabHost.addTab(mtabHost.newTabSpec("tab8")   
  25.                          .setIndicator(getString(R.string.tabs_1_tab_8),getResources().getDrawable(R.drawable.tab_help))   
  26.                          .setContent(this));   
  27.                  mtabHost.setOnTabChangedListener( this); 

 

然後需要重載兩個函數

  1. public void onTabChanged(String tagString) {  
  2.         // TODO Auto-generated method stub  
  3.           
  4.     }  
  5.     @Override 
  6.     public View createTabContent(String arg0) {  
  7.      final TextView tv = new TextView(this);   
  8.      tv.setText("Content for tab with tag " + arg0);   
  9.  return tv;  
  10. }  

 

這樣就可以實現一個初步的TabHost

另外一種方法

還可以在xml文件裡畫TabHost界面

比如最近我做一個項目,就遇到需要把TabHost放在屏幕下方

代碼如下

這是main.xml

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" android:layout_width="fill_parent" 
  4.     android:layout_height="fill_parent"> 
  5.     <TabHost android:id="@+id/edit_item_tab_host" 
  6.         android:layout_width="fill_parent" android:layout_height="fill_parent"> 
  7.         <LinearLayout android:orientation="vertical" 
  8.             android:layout_width="fill_parent" android:layout_height="fill_parent" 
  9.             android:padding="5dp"> 
  10.             <FrameLayout android:id="@android:id/tabcontent" 
  11.                 android:layout_width="fill_parent" android:layout_height="wrap_content" 
  12.                 android:padding="5dp" android:layout_weight="1" /> 
  13.             <TabWidget android:id="@android:id/tabs" 
  14.                 android:layout_width="fill_parent" android:layout_height="wrap_content" 
  15.                 android:layout_weight="0" /> 
  16.         </LinearLayout> 
  17.     </TabHost> 
  18. </LinearLayout> 

 

主文件裡

  1. public static TabHost tab_host;  
  2. setContentView(R.layout.main);  
  3. tab_host = (TabHost) findViewById(R.id.edit_item_tab_host);  
  4.         tab_host.setup(this.getLocalActivityManager());  
  5.         TabSpec ts1 = tab_host.newTabSpec("TAB_1");   
  6.         ts1.setIndicator(getString(R.string.a),getResources().getDrawable(R.drawable.a));   
  7.         ts1.setContent(new Intent(this, a.class));   
  8.         tab_host.addTab(ts1);  
  9.         TabSpec ts2 = tab_host.newTabSpec("TAB_2");   
  10.         ts2.setIndicator(getString(R.string.b),getResources().getDrawable(R.drawable.b));   
  11.         ts2.setContent(new Intent(this, b.class));   
  12.         tab_host.addTab(ts2);  
  13.         TabSpec ts3 = tab_host.newTabSpec("TAB_3");   
  14.         ts3.setIndicator(getString(R.string.c),getResources().getDrawable(R.drawable.c));   
  15.         ts3.setContent(new Intent(this, c.class));   
  16.         tab_host.addTab(ts3);  
  17.           
  18.         TabSpec ts4 = tab_host.newTabSpec("TAB_4");   
  19.         ts4.setIndicator(getString(R.string.d),getResources().getDrawable(R.drawable.d));   
  20.         ts4.setContent(new Intent(this, d.class));   
  21.         tab_host.addTab(ts4);  
  22.         tab_host.setCurrentTab(0);  
  23.         tab_host.setOnTabChangedListener(new OnTabChangeListener(){  
  24.             @Override 
  25.             public void onTabChanged(String tabId) {  
  26.                 // TODO Auto-generated method stub  
  27.                   
  28.               
  29.         }); 

 

這樣就可以構建出一個很好的TabHost的界面

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved