Android中TabActivity使用范例
首先要定义一个继承TabActivity的类,这里我们定义MainActivity,并且使其作为应用程序的入口。其代码为
01.package com.myandroid.tabtest;
02.
03.import android.app.TabActivity;
04.import android.content.Intent;
05.import android.os.Bundle;
06.import android.widget.TabHost;
07.import android.widget.TabHost.TabSpec;
08.
09.public class MainActivity extends TabActivity {
10. private TabHost m_tabHost;
11. /** Called when the activity is first created. */
12. @Override
13. public void onCreate(Bundle savedInstanceState) {
14. super.onCreate(savedInstanceState);
15. setContentView(R.layout.tabs);
16.
17. //getTabHost返回的TabHost用于装载tabs
18. m_tabHost = getTabHost();
19.
20. //add tabs,这里用于添加具体的Tabs,并用Tab触发相应的Activity
21. addOneTab();
22. addTwoTab();
23. addThreeTab();
24. addFourTab();
25. }
26.
27. public void addOneTab(){
28. Intent intent = new Intent();
29. intent.setClass(MainActivity.this, OneActivity.class);
30.
31. TabSpec spec = m_tabHost.newTabSpec("One");
32. spec.setIndicator(getString(R.string.one), null);
33. spec.setContent(intent);
34. m_tabHost.addTab(spec);
35. }
36.
37. public void addTwoTab(){
38. Intent intent = new Intent();
39. intent.setClass(MainActivity.this, TwoActivity.class);
40.
41. TabSpec spec = m_tabHost.newTabSpec("Two");
42. spec.setIndicator(getString(R.string.two), null);
43. spec.setContent(intent);
44. m_tabHost.addTab(spec);
45. }
46. public void addThreeTab(){
47. Intent intent = new Intent();
48. intent.setClass(MainActivity.this, ThreeActivity.class);
49.
50. TabSpec spec = m_tabHost.newTabSpec("Three");
51. spec.setIndicator(getString(R.string.three), null);
52. spec.setContent(intent);
53. m_tabHost.addTab(spec);
54. }
55. public void addFourTab(){
56. Intent intent = new Intent();
57. intent.setClass(MainActivity.this, FourActivity.class);
58.
59. TabSpec spec = m_tabHost.newTabSpec("Four");
60. spec.setIndicator(getString(R.string.four), null);
61. spec.setContent(intent);
62. m_tabHost.addTab(spec);
63. }
64.}
可以看到在MainActivity中,我们使用getTabHost()返回一个TabHost,而TabHost正是用来添加Tabs的。这里我们添加了4个Tabs,使用4个函数完成:addOneTab(),addTwoTab(),addThreeTab(),addFourTab().在这4个函数中我们使用TabSpec来描述每个的Tab,并且设置Intent,完成点击该Tab时跳转到相应的Activity的功能。
当然,这个应用还有一个关键点,就是这里的布局tabs.xml.其代码为:
01.<?xml version="1.0" encoding="utf-8"?>
02.<TabHost
03. xmlns:android="http://schemas.android.com/apk/res/android"
04. android:id="@android:id/tabhost"
05. android:layout_width="fill_parent"
06. android:layout_height="fill_parent">
07. <LinearLayout
08. android:orientation="vertical"
09. android:layout_width="fill_parent"
10. android:layout_height="fill_parent">
11.
12. <TabWidget android:id="@android:id/tabs"
13. android:layout_width="fill_parent"
14. android:layout_height="wrap_content"
15. android:paddingLeft="1dip"
16. android:paddingRight="1dip"
17. android:paddingTop="4dip"
18. />
19.
20. <FrameLayout android:id="@android:id/tabcontent"
21. android:layout_width="fill_parent"
22. android:layout_height="0dip"
23. android:layout_weight="1"
24. />
25. </LinearLayout>
26.</TabHost>