編輯:關於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程序設計有所幫助。
對於沒有接觸過Android開發的人員來說,可能感覺Android開發比較困難,接下來的一段時間,我們將了解Android開發的具體細節,主要是面對.NET程序員,來看看
本來不想寫這些基礎中的基礎,但是想想這些內容雖然用不到,但需要做這樣的了解和學習,也是概念性的居多,理解至上。不過還是不多說,就講兩個部分吧。一。系統架構這次的沒有Xm
分類自定義Layout可以分為兩種情況。 自定義ViewGroup,創造出一些不同於LinearLayout,RelativeLayout等之類的ViewGroup。比
(1)主要用了paint ,canvas 兩個類中的方法 (2)主要用了畫線和畫圓的方法。 (3)drawline(起始點軸坐標,起始點y軸坐標,終點軸坐標,終點y軸坐標