其實最近實作了不少東西,但一直沒有時間記錄下來
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();
}
}
基本上這樣就大功告成了!