android tab的使用

来源:互联网 发布:arashi smap 地位知乎 编辑:程序博客网 时间:2024/04/28 10:09
 

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>