天天看點

TabHost頁籤的實作(一):使用TabActivity實作

一、 tabhost的基本開發流程

tabhost是一種非常實用的元件,可以很友善的在視窗上防止多個标簽頁,每個标簽頁相當于獲得了一個外部容器相同大小的元件擺放區域。

我們熟悉的手機電話系統“未接電話”、“已接電話”、“呼出電話”就可以使用tabhost實作。

1.1 與tabhost結合使用的元件

· tabwidget: 代表頁籤的标簽條。

· tabspec: 代表頁籤的一個tab頁面。

1.2 tabhost提供的建立頁籤方法

tabhost中常用方法;

· void addtab(tabhost.tabspec tabspec)

添加一個标簽頁

· int getcurrenttab()

擷取目前的标簽頁id

· string getcurrenttabtag()

擷取目前的标簽頁的tag

· tabhost.tabspec

 newtabspec(string tag) 建立一個tabspec

· void setcurrenttab(int index)

設定一個标簽頁的id

· void setcurrenttabbytag(string tag)

設定一個标簽頁的tag

tabspec中常用的方法:

· string gettag() 

setcontent(int viewid) 通過指定布局檔案,設定标簽頁的内容

setcontent(intent intent)

通過指定intent所指定的activity,設定标簽頁的内容

setindicator(charsequence label) 設定該标簽頁的标題

setindicator(charsequence label, drawable icon) 

設定該标簽頁的标題和圖示

1.3 開發流程

· 在界面布局中定義tabhost元件,并為該元件定義該頁籤的内容

· activity應該繼承tabactivity。

· 調用tabactivity的gettabhost()方法擷取tabhost對象。

· 通過tabhost對象的方法來建立、添加頁籤。

二、 實作tabhost布局的通話記錄界面

1) 首先,我們定義tabhost需要顯示的xml界面:

對于上述布局檔案,我們有三個地方的id需要注意:

1. tabhost的id應該為@android:id/tabhost

2. tabwidget的id應該為@android:id/tabs

3. framelayout的id應該為@android:id/tabcontent

這三個id并不是程式員自定義的,而是android系統提供的,必須按照如此方法設定。

2) java代碼,将三個tab添加到容器中

效果圖:

TabHost頁籤的實作(一):使用TabActivity實作
TabHost頁籤的實作(一):使用TabActivity實作
TabHost頁籤的實作(一):使用TabActivity實作

說明; 如今,我們已經不再推薦使用tabactivity來建立标簽頁了,更加推薦使用fragment代替tabactivity,請看下章講解如何去實作fragment的tabhost。

繼續閱讀