Android中TabActivity使用范例
来源:互联网 发布:虚拟linux系统界面 编辑:程序博客网 时间:2024/06/05 04:42
如果希望在Activity中出现多个Tab可以点击,并且点击每个Tab之后跳转到相应的Activity,可以使用TabActivity类。以下演示一个简单的范例。
首先要定义一个继承TabActivity的类,这里我们定义MainActivity,并且使其作为应用程序的入口。其代码为
- package com.myandroid.tabtest;
-
- import <a href="http://lib.csdn.net/base/android" class='replace_word' title="Android知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Android</a>.app.TabActivity;
- import <a href="http://lib.csdn.net/base/android" class='replace_word' title="Android知识库" target='_blank' style='color:#df3434; font-weight:bold;'>android</a>.content.Intent;
- import android.os.Bundle;
- import android.widget.TabHost;
- import android.widget.TabHost.TabSpec;
-
- public class MainActivity extends TabActivity {
- private TabHost m_tabHost;
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.tabs);
-
-
- m_tabHost = getTabHost();
-
-
- addOneTab();
- addTwoTab();
- addThreeTab();
- addFourTab();
- }
-
- public void addOneTab(){
- Intent intent = new Intent();
- intent.setClass(MainActivity.this, OneActivity.class);
-
- TabSpec spec = m_tabHost.newTabSpec("One");
- spec.setIndicator(getString(R.string.one), null);
- spec.setContent(intent);
- m_tabHost.addTab(spec);
- }
-
- public void addTwoTab(){
- Intent intent = new Intent();
- intent.setClass(MainActivity.this, TwoActivity.class);
-
- TabSpec spec = m_tabHost.newTabSpec("Two");
- spec.setIndicator(getString(R.string.two), null);
- spec.setContent(intent);
- m_tabHost.addTab(spec);
- }
- public void addThreeTab(){
- Intent intent = new Intent();
- intent.setClass(MainActivity.this, ThreeActivity.class);
-
- TabSpec spec = m_tabHost.newTabSpec("Three");
- spec.setIndicator(getString(R.string.three), null);
- spec.setContent(intent);
- m_tabHost.addTab(spec);
- }
- public void addFourTab(){
- Intent intent = new Intent();
- intent.setClass(MainActivity.this, FourActivity.class);
-
- TabSpec spec = m_tabHost.newTabSpec("Four");
- spec.setIndicator(getString(R.string.four), null);
- spec.setContent(intent);
- m_tabHost.addTab(spec);
- }
- }
可以看到在MainActivity中,我们使用getTabHost()返回一个TabHost,而TabHost正是用来添加Tabs的。这里我们添加了4个Tabs,使用4个函数完成:addOneTab(),addTwoTab(),addThreeTab(),addFourTab().在这4个函数中我们使用TabSpec来描述每个的Tab,并且设置Intent,完成点击该Tab时跳转到相应的Activity的功能。
当然,这个应用还有一个关键点,就是这里的布局tabs.xml.其代码为:
- <?xml version="1.0" encoding="utf-8"?>
- <TabHost
- xmlns:android="http://schemas.android.com/apk/res/android"
- android:id="@android:id/tabhost"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
-
- <TabWidget android:id="@android:id/tabs"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:paddingLeft="1dip"
- android:paddingRight="1dip"
- android:paddingTop="4dip"
- />
-
- <FrameLayout android:id="@android:id/tabcontent"
- android:layout_width="fill_parent"
- android:layout_height="0dip"
- android:layout_weight="1"
- />
- </LinearLayout>
- </TabHost>
注意在tabs.xml中,定义TabHost标签,并且其中有一个TabWidget标签是装载整个Tabs的,其id必须为android:id/tabs
完成这些工作之后,接下来的任务就是定义前面的几个Activity,OneActivity,TwoActivity,ThreeActivity,FourActivity.这些Activity由大家根据自己的功能设定。