Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android開發之TabActivity用法實例詳解

Android開發之TabActivity用法實例詳解

編輯:關於Android編程

本文實例講述了Android開發之TabActivity用法。分享給大家供大家參考,具體如下:

一.簡介

TabActivity繼承自Activity,目的是讓同一界面容納更多的內容。TabActivity實現標簽頁的功能,通過導航欄對各個頁面進行管理。

二.XML布局文件

注意:

1.TabActivity的布局文件要求以TabHost作為XML布局文件的根。

2.通常我們采用線性布局,所以<TabHost> 的子元素是 <LinearLayout>。

3.<TabWidget>對應Tab
<FrameLayout>則用於包含Tab需要展示的內容
需要注意的是<TabWidget> 和<FrameLayout>的Id 必須使用系統id,分別為android:id/tabs 和 android:id/tabcontent 。
因為系統會使用者兩個id來初始化TabHost的兩個實例變量(mTabWidget 和 mTabContent)。

4.代碼示例

<?xml version="1.0" encoding="utf-8"?>
<TabHost android:id="@android:id/tabhost"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
  <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
  <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
  </TabWidget>
  <FrameLayout android:id="@android:id/tabcontent"
       android:layout_width="match_parent"
       android:layout_height="match_parent">
</FrameLayout>
</LinearLayout>
</TabHost>

三.TabActivity

1.TabHost:TabHost是Tab的載體,用來管理Tab。

2.TabHost的一些函數

(1)獲取

TabHost tabHost=this.getTabHost();

(2) 創建TabHost.TabSpec

public TabHost.TabSpec newTabSpec (String tag)

(3)添加tab

public void addTab (TabHost.TabSpec tabSpec)

(4)remove所有的Tabs

public void clearAllTabs ()
public int getCurrentTab ()

(5)  設置當前的Tab (by index)

public void setCurrentTab (int index)

(6) 設置當前的(Tab by tag)

public void setCurrentTabByTag (String tag)

(7)設置TabChanged事件的響應處理

public void setOnTabChangedListener (TabHost.OnTabChangeListener l)

3.TabHost.TabSpec要設置tab的label和content,需要設置TabHost.TabSpec類。TabHost.TabSpec管理:

public String getTag ()
public TabHost.TabSpec setContent
public TabHost.TabSpec setIndicator

(1)Indicator這裡的Indicator 就是Tab上的label,它可以

設置label :

setIndicator (CharSequence label)

設置label和icon :

setIndicator (CharSequence label, Drawable icon)

指定某個view :

setIndicator (View view)

(2)Content對於Content ,就是Tab裡面的內容,可以

設置View的id :

setContent(int viewId)

用new Intent 來引入其他Activity的內容:setContent(Intent intent)

package com.zhanglong.music;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TabHost;
public class MainActivity extends TabActivity
{
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
     WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.main);
    Resources res = getResources();
    TabHost tabHost = getTabHost();
    TabHost.TabSpec spec;
    Intent intent;
    intent = new Intent().setClass(this, ListActivity.class);
    spec = tabHost.newTabSpec("音樂").setIndicator("音樂",
             res.getDrawable(R.drawable.item))
           .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, ArtistsActivity.class);
    spec = tabHost.newTabSpec("藝術家").setIndicator("藝術家",
             res.getDrawable(R.drawable.artist))
           .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, AlbumsActivity.class);
    spec = tabHost.newTabSpec("專輯").setIndicator("專輯",
             res.getDrawable(R.drawable.album))
           .setContent(intent);
    tabHost.addTab(spec);
    intent = new Intent().setClass(this, SongsActivity.class);
    spec = tabHost.newTabSpec("最近播放").setIndicator("最近播放",
             res.getDrawable(R.drawable.album))
           .setContent(intent);
    tabHost.addTab(spec);
    tabHost.setCurrentTab(0);
  }
}

更多關於Android相關內容感興趣的讀者可查看本站專題:《Android開發入門與進階教程》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結》、《Android視圖View技巧總結》、《Android布局layout技巧總結》及《Android控件用法總結》

希望本文所述對大家Android程序設計有所幫助。

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