25 July 2010
今天來介紹一下Android tab activity好了!

其實最近實作了不少東西,但一直沒有時間記錄下來

Tab Actity倒是蠻久之前的,拿出來溫習一下吧!

先新增一個class吧!

但要繼承的是TabActivity!

如果要做到Tab變換時,會有所動作時,

要記得implements OnTabChangeListener

如下:

public class main extends TabActivity implements OnTabChangeListener {

}


接著就來部屬Tab的長相了!

這邊先預設兩個Tab(tab1、tab2),其實tab裡的東西可以重複使用,這裡只是為了清楚定義

而宣告兩個!


<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:id="@+id/tab1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
androidrientation="vertical"
android:background="#ffffff"
>
</LinearLayout>

<LinearLayout
android:id="@+id/tab2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
androidrientation="vertical"
android:background="#ff0000"
>
</LinearLayout>
</FrameLayout>


接著來撰寫主要的CODE了!


 
public class main extends TabActivity implements OnTabChangeListener {
private TabHost tabHost; //宣告一個TabHost,主機的意思。所有的TAB都要被加在裡面
private TabSpec tab1, tab2; //先宣告兩個tab

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
tabHost = this.getTabHost(); //先取得TabHost

//利用Inflater來渲染版變
LayoutInflater.from(this).inflate(R.layout.main,tabHost.getTabContentView(), true);

//接著就利用newTabSpec新增一個TAB,setIndicator是設定TITLE和背景圖,setContent是設定這個TAB裡面的樣式
tab1 = tabHost.newTabSpec("Id1")
.setIndicator("Tab1",this.getResources().getDrawable(R.drawable.icon2))
.setContent(R.id.tab1);
//加入至tabHost
tabHost.addTab(tab1);

tab2 = tabHost.newTabSpec("Id2")
.setIndicator("Tab2",this.getResources().getDrawable(R.drawable.icon))
.setContent(R.id.tab2);
tabHost.addTab(tab2);
tabHost.setOnTabChangedListener(this);
}

@Override
public void onTabChanged(String tabId) {
new AlertDialog.Builder(this).setTitle("Hint").setMessage(tabId)
.setPositiveButton("OK", null).show();
}
}




基本上這樣就大功告成了!









blog comments powered by Disqus